在数组中查找包含对象 id 的文档 (Mongodb)

问题描述 投票:0回答:1

我正在开发一个节点项目,但不知道如何在对象 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();

我期待获得这份文件和其他符合条件的文件。 如果我能设法获得第一个结果,我将迭代光标。

javascript arrays mongodb objectid
1个回答
0
投票

您应该使用

$elemMatch
从数组中搜索。这是一个例子:

query = {"$elemMatch": new ObjectId('6515a0ba76e7e07f68160ef5')};
cursor = await processCollection.find({managers: query})
© www.soinside.com 2019 - 2024. All rights reserved.