按ObjectId数组进行MongoDB筛选
我有一个文档,它有一个objectid数组供参考。该数组不是关联数组,它只是ObjectId:按ObjectId数组进行MongoDB筛选,mongodb,mongodb-query,Mongodb,Mongodb Query,我有一个文档,它有一个objectid数组供参考。该数组不是关联数组,它只是ObjectId: { ... "tags" : [ ObjectId("54744662ae8a0be602568c4f") ] } 现在我尝试基于该数组进行筛选,如下所示: db.expenses.find({ tags:{ $elemMatch:{ObjectId("547469bb0bde915a05f74299")} } }) 我知道$elemMatch上的投影是错误的
{
...
"tags" : [
ObjectId("54744662ae8a0be602568c4f")
]
}
现在我尝试基于该数组进行筛选,如下所示:
db.expenses.find({
tags:{
$elemMatch:{ObjectId("547469bb0bde915a05f74299")}
}
})
我知道$elemMatch上的投影是错误的,但我只是不知道如何做,而且谷歌也没有帮助我们,因为大多数示例都是用于和具有定义属性的json对象数组
有人知道怎么做吗 如果我没弄错你的问题,这就是答案
db.expenses.find(
{
tags: {$in : [ObjectId("54744662ae8a0be602568c4f")]}
})
你不需要
$in
因为它只是一个值,所以它可以是标记:ObjectId(“54744662ae8a0be602568c4f”)
@JohnnyHK是对的,但是我用$in搜索多个ObjectId如果需要的话我现在感觉很傻,你的权利,我不知道为什么我没有尝试这个。我觉得数组的事情让我觉得它应该是不同的。谢谢