我收到了具有以下结构的MongoDB文档:
{
name:'some name here',
someStuff: [
{
type: 'banana',
colors:['yellow','red]
},
{
type: 'apple',
colors:['red','blue','orange']
}
]
}
我想查询所有包含数组中至少一种颜色的文档,例如[' red',' green']
我尝试了以下查询,但它不起作用:
db.SomeDB.find({
"someStuff": {
$elemMatch: {
"colors": {
$elemMatch: {
"$in": ['red', 'green']
}
}
}
}
你能给我一些提示如何写这个查询吗?
答案 0 :(得分:0)
在$elemMatch
检查以下查询后,您遗漏的小事情未使用colors
:
db.collectionName.find({
"someStuff": {
"$elemMatch": {
"colors": {
"$in": ["red", "green"]
}
}
}
}).pretty()
答案 1 :(得分:0)
使用 dot notation 查询嵌入文档:
db.SomeDB.find({"someStuff.colors": {"$in": ["red", "green"]}})