gpt4 book ai didi

javascript - Azure DocumentDB 中的 Mongoose $ne

转载 作者:行者123 更新时间:2023-12-03 04:41:11 25 4
gpt4 key购买 nike

我知道 Azure 中的 DocumentDB 并不支持 MongoDB 支持的所有内容(尽管女士一般性声明它支持)。我想做的是创建一个可以在使用 MongoDB 和 DocumentDB 之间切换的应用程序。我发现,当 Mongoose 传入时,DocumentDB 本质上会忽略 $ne 运算符。

因此,当针对 DocumentDB 运行时,以下代码行作为 Mongoose .find 查询中的过滤运算符将返回所有内容,无论记录是否已包含给定的规则._id。

WebsiteObj.SelectWebsite = function(rule, websiteUri, callback){
Website.find(
{websiteUri: websiteUri, 'rules': { '$ne': rule._id }},
['_id', 'websiteUri', 'ipAddress', 'createdAt'], function(err, websites){
if(err) {
callback(err);
return;
}
callback(null, rule, websites);
});
};

有没有一种方法可以使这项工作无需诉诸 DocumentDB 特定查询?

最佳答案

我已经使用 Mongoose (^4.9.2) 和 DocuemntDB 测试了 $ne 运算符,它对我有用。

这是我的完整代码示例,

var mongoose = require('mongoose');
mongoose.connect('mongodb://my-user-name:my-password@my-host:10250/test/?ssl=true');

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
// we're connected!

var kittySchema = mongoose.Schema({
name: String
});

var Kitten = mongoose.model('Kitten', kittySchema);

var fluffy = new Kitten({ name: 'fluffy' });

fluffy.save(function (err, fluffy) {
if (err) return console.error(err);

Kitten.find({name: { '$ne': 'fluffy' }}, function (err, kittens) {
if (err) return console.error(err);
console.log(kittens);
})

});

});

运行代码时得到空数组。

关于javascript - Azure DocumentDB 中的 Mongoose $ne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com