Mongodb 关于mongoose中对象的查询数组 在mongoplayground中测试
期待Mongodb 关于mongoose中对象的查询数组 在mongoplayground中测试,mongodb,mongoose,Mongodb,Mongoose,期待 { _id:“5df1e6f75de2b22f8e6c30e8”, t:[ {名称:“d1”,tt:false}, {name:“d2”,tt:true} ] } 这是我的问题 db.coll.find({ “t”:{ $ne:{ “姓名”:{ $regex:“d1”, $选项:“g” }, “tt”:正确 } } }) 我得到了错误的答案,那么如何得到期望的结果呢?谢谢 t.name包括'd1'和t.tt!=真的 t.name不包括“d1” 我想得到结果1或2 db.coll.fin
{
_id:“5df1e6f75de2b22f8e6c30e8”,
t:[
{名称:“d1”,tt:false},
{name:“d2”,tt:true}
]
}
这是我的问题
db.coll.find({
“t”:{
$ne:{
“姓名”:{
$regex:“d1”,
$选项:“g”
},
“tt”:正确
}
}
})
我得到了错误的答案,那么如何得到期望的结果呢?谢谢
t.name
包括'd1'和t.tt
!=真的t.name
不包括“d1”1或2
db.coll.find({
$or:[
{
“t”:{
$elemMatch:{
姓名:{
$regex:“^d1$| d1”
},
tt:错
}
}
},
{
“t”:{
$not:{
$elemMatch:{
姓名:{
$regex:“d1”
},
}
}
}
}
]
})
您需要获取此{u id:“5df1e6f75de2b22f8e6c30e5”,t:[{name:“d11”,tt:false},{name:“d2”,tt:false}]}
?因此,每个文档都有t
数组,其中包含一个对象,该对象具有名称:“d2”
,因此正则表达式上的$ne
将与d2
匹配并获取所有3个示例文档!!那么,如果t.name不包含“d1”,您到底想做什么?同时你可以试试这个:@whoami,谢谢,1.t.name包括'd1'和t.tt!=true
,2.t.name不包括'd1'
,我希望得到结果1或2。
您是否尝试了我给出的查询?它将在条件1下完美工作。但是如果你想在条件1和条件2。然后您将从您提供的示例文档中获取所有文档!!因为每个文档都有一个名为d2的对象!!这就是你想要的吗?如果你能提供更多的样品文件和所需的o/p,那就更好了@哇,是的,我尝试了你给出的答案,但它不是我想要的,d11
包括d1
,所以如果d11
是false
,你的答案将不可用,我实际上想得到id:“5df1e6f75de2b22f8e6c30e8”
和\id:“5df1e6f75de2b22be6c30e6”