我正在使用lokijs,其中有" mongo-similar"查询语言。
devices.insert({key:'d1', name:'Device1', users:['u1'], status: 'OK', current_wl:'123'})
devices.insert({key:'d2', name:'Device2', users:['u1','u1'], status: 'OK', current_wl:'123'})
devices.insert({key:'d3', name:'Device3', users:['u2','u3'], status: 'OK', current_wl:'123'})
devices.insert({key:'d4', name:'Device4', users:['u1','u2','u3','u4'], status: 'OK', current_wl:'123'})
我尝试查找具有用户' u1'在其数组中,用户返回emty list:
a= devices.find( {users:{ "$in" : ["u1"] }} )
console.log("A", a);
如果问题是mongodb,查询是否正确? 还有另一种方法可以在mongo中完成吗? 在lokijs有另一种方法吗?
答案 0 :(得分:1)
我不确定lokijs,但这是Mongo中的正确查询。
如果您只是要查询其“users”数组中包含单个特定项目的文档,那么Mongo中针对此案例的更简单查询将是:
db.collection.find({ users: "u1" })
答案 1 :(得分:1)
我使用where
找到了解决方案(或解决方法):
a= devices.where( function(obj){
return obj.users.indexOf('u1') > -1;
}
);