所以我在水线0.10.x中查找了 .distinct 函数,并且在查看Stack Overflow之后找不到它,我发现了这个......
How to extract distinct values from a mongo database using Waterline and Sails.js (version 0.10)?
ALMOST解决了我的问题。
所以我尝试查看本机mongodb文档,发现我可以这样做......
db.dogs.distinct('breed', { owner: ObjectId('123456') })
返回 ObjectId('123456')所具有的不同品种。
但这不起作用......
Dog.native(function (err, collection){
collection.distinct('breed', { owner: '123456' }, function (err, breeds){
console.log(breeds);
});
});
这给了我一个空数组。
我认为问题在于,Waterline的 .native 函数无法理解何时将给定字符串转换为 ObjectId ,而且Waterline文档仍在 - 记录。
如何通过查询获取不同的值?
答案 0 :(得分:2)
我找到了解决方案。
sails-mongo v0.10.5介绍了结果中使用的函数。
可在此处看到:https://github.com/balderdashy/sails-mongo/pull/215
工作代码如下:
Dog.native(function (err, collection){
collection.distinct('breed', {
owner: Owner.mongo.objectId("123456")
}, function (err, breeds){
console.log(breeds);
});
});
{samp-mongo 0.10.5中引入了Model.mongo.objectId
函数。