我是NoSQL数据库的新手,我想找到一种基于密钥搜索阵列中所有项目的方法,例如: 如果我们有这个集合 database.collection(" COL&#34)
{
"_id" : ObjectId("59389f763007e086bc310c73"),
"messageIds" : [
1,
2,
3,
4,
5
],
"participants" : {
"59389e953007e086bc310c36" : 0,
"59389ea63007e086bc310c41" : 0
},
"type" : "f"
}
如何找到所有参与者的文件" 59389e953007e086bc310c36"在node.js?
在MongoDb中,我可以找到所有项目,但
db.getCollection('conversations').find(
{
"participants.59389e953007e086bc310c36" :
{
$exists: true
}
})
我不能在Node.js中这样做,因为它不会按值
评估user_oiduser_oid = "participants."+user_oid;
let criteria = {
user_oid: { $exists: true }
}
console.log(criteria);
database.collection(CONVERSATION_COLLECTION).find(criteria, (err,doc) => {
console.log(doc);
console.log;
})
答案 0 :(得分:0)
您可以使用[]
动态设置字段
let criteria = {};
criteria['participants.'+user_oid] = { $exists: true };
console.log(criteria);
database.collection(CONVERSATION_COLLECTION).find(criteria, (err,doc) => {
console.log(doc);
console.log;
});