MongoDB按objectIds数组过滤

Ric*_*mes 4 mongodb mongodb-query

我有一个文档,其中包含一组 ObjectID 供参考。该数组不是关联数组,它只是 ObjectIDS:

{
  ...
  "tags" : [ 
    ObjectId("54744662ae8a0be602568c4f")
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试根据该数组进行过滤,如下所示:

db.expenses.find({
  tags:{
    $elemMatch:{ObjectId("547469bb0bde915a05f74299")}
  }
})
Run Code Online (Sandbox Code Playgroud)

我知道 $elemMatch 上的投影是错误的,但我只是不知道该怎么做,而且 Google 没有提供帮助,因为大多数示例都是针对具有定义属性的 json 对象数组。

有谁知道如何做到这一点?

Dis*_*ser 6

如果我正确地解决了您的问题,这就是答案

db.expenses.find(
{
  tags: {$in : [ObjectId("54744662ae8a0be602568c4f")]}  
})
Run Code Online (Sandbox Code Playgroud)

  • 不过,您不需要 `$in` 因为它只是一个值,所以它可以只是 `tags: ObjectId("54744662ae8a0be602568c4f")` (2认同)