猫鼬在存储数组中查找数组项

时间:2018-12-24 10:33:21

标签: node.js mongodb mongoose

我有一个文档,其中存储了一个ID数组,这些ID引用了另一个集合:

{
  title: 'Title of the document',
  categories: [
    { _id: 1 },
    { _id: 2 },
    { _id: 3 },
    { _id: 4 },
  ]
}

现在,我希望能够找到具有至少一个我要传递到数组中的类别之一的所有文档:

categories: [1, 3, 4]

我搜索了stackoverflow和MongoDB文档,但没有找到实现方法。

1 个答案:

答案 0 :(得分:1)

我认为$ in运算符是您想要的。它选择文档,其中字段的值等于指定数组中的任何值。 Mongo文档提供了一个有用的页面,其中包含section,用于查询数组中的值。

您还需要使用点表示法来查询Categories数组的_id字段。这些文档还具有page,用于查询嵌入式文档的数组,这就是您在此处所做的操作(您正在查询类别文档的数组)。

对于您的情况,您的查询对象可能应该类似于

{ 'categories._id' : { $in: [1, 3, 4] } }