Node.js Mongoose在存储的数组中查找数组项
我有一个文档,其中存储了引用不同集合的ID数组:Node.js Mongoose在存储的数组中查找数组项,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个文档,其中存储了引用不同集合的ID数组: { title: 'Title of the document', categories: [ { _id: 1 }, { _id: 2 }, { _id: 3 }, { _id: 4 }, ] } 现在,我希望能够找到所有文档,这些文档至少包含我传递到数组中的一个类别: categories: [1, 3, 4] 我已经搜索了stackoverflow和MongoDB文档,但没有找到如何实现这一点
{
title: 'Title of the document',
categories: [
{ _id: 1 },
{ _id: 2 },
{ _id: 3 },
{ _id: 4 },
]
}
现在,我希望能够找到所有文档,这些文档至少包含我传递到数组中的一个类别:
categories: [1, 3, 4]
我已经搜索了stackoverflow和MongoDB文档,但没有找到如何实现这一点。我认为$in操作符正是您要寻找的。它选择字段值等于指定数组中任何值的文档。Mongo文档有一个有用的页面,其中包含一个用于查询数组中的值的函数 您还需要使用点表示法来查询categories数组的_id字段。这些文档还有一个用于查询嵌入文档数组的函数,这就是您在这里所做的(您正在查询类别文档数组) 对于您的情况,您的查询对象应该是
{ 'categories._id' : { $in: [1, 3, 4] } }
另一种方法是:db.collection.find({categories:{$elemMatch:{{u id:{$in:[1,2,3]}}})-如果您还想在查询中引入比较运算符,那么它非常有用。。。