您好我想在mongodb上设置过滤器到集合。
我想设置过滤器(代码字段以“0”或“2”开头)和(FirmId eq to“5186224fdff7421bd4552f7f”)
但查询结果为空。有什么问题?
我的mongo查询是;
db.Customers.find({ "$and" : [{ "FirmId" : ObjectId("5186224fdff7421bd4552f7f") }, { "$or" : [{ "Code" : /^0/ }, { "Code" : /^2/ }] }] })
_
{
$and: [
{
"FirmId": ObjectId("5186224fdff7421bd4552f7f")
},
{
"$or": [
{
"Code": /^0/
},
{
"Code": /^2/
}
]
}
]
}
或使用
{
"FirmId": ObjectId("5186224fdff7421bd4552f7f"),
"$or": [
{
"Code": /^0/
},
{
"Code": /^2/
}
]
}
答案 0 :(得分:1)
在这种情况下,您不需要指定全局$and
,最外层的对象就像有一个一样。
以下查询应该有效:
{
"FirmId": ObjectId("5186224fdff7421bd4552f7f"),
"$or": [
{
"Code": /^0/
},
{
"Code": /^2/
}
]
}
答案 1 :(得分:1)
您不应在此使用$and
或$or
。
{ FirmId: ObjectId("xxx"), Code:/^[02]/ }
如果您没有得到任何结果,则可能没有符合此条件的记录。