基本上查询在mongo中工作,但在sails控制器中不起作用:
db.membermodel.find({identifier:{$in:["2","3","4"]}); // works
MemberModel.find({
identifier:{$in:["2","3","4"]},
}).then(function(members){
// doesn't work
});
返回的数据:
{ "_id" : ObjectId("52d1a484f2b5e88cb5d4072c"), "identifier" : "2", "deviceToken" : "token2"}
{ "_id" : ObjectId("52d1a487f2b5e88cb5d4072d"), "identifier" : "3", "deviceToken" : "token3"}
谢谢, 火星
答案 0 :(得分:1)
这不是使用Waterline进行in
查询的方法。您只需将要选择的属性设置为数组值:
MemberModel.find({
identifier:["2","3","4"]
}).exec(function(err, members){
...
});
如果您确实需要使用低级Mongo功能,可以使用
获取本机集合的实例MemberModel.native(function(err, collection) {
//do native mongo driver stuff with collection
}
答案 1 :(得分:0)
很难理解模型是如何被查询的,但我建议你“窥探”Mongo获取的MVC框架查询,因为这不是对Mongo的直接查询,而是通过框架传递。 我很确定你还在开发中,所以你可以访问你的mongo实例,使用完整的配置文件重新启动它(诀窍是在1ms内一切都很慢)
mongod --profile = 1 --slowms = 1&
关闭通常在
中的结果日志/var/log/mongodb/mongodb.log
使用命令
tail -f /var/log/mongodb/mongodb.log
再次发送您的查询并检查MongoDb正在执行的内容。