我正在开发一个节点项目,但不知道如何在对象 id 数组上使用 find() 函数。我的代码的结果始终为空。
这是我的 mongodb 数据库中的文档示例:
{
"_id": {
"$oid": "6515923586714e6ae70be0a9"
},
"managers": [
{
"$oid": "6515a0ba76e7e07f68160ef5"
},
{
"$oid": "6515a0d35c2d7cad9b070e64"
}
]
}
我尝试过这段代码。
let processCollection = await db.collection("processes");
let query, cursor, result;
query = {_id: new ObjectId('6515a0ba76e7e07f68160ef5')};
cursor = await processCollection.find({managers:query});
result = await cursor.next();
我期待获得这份文件和其他符合条件的文件。 如果我能设法获得第一个结果,我将迭代光标。
您应该使用
$elemMatch
从数组中搜索。这是一个例子:
query = {"$elemMatch": new ObjectId('6515a0ba76e7e07f68160ef5')};
cursor = await processCollection.find({managers: query})