MongoDB中的查询内部数组
我有一个具有以下结构的MongoDB文档:MongoDB中的查询内部数组,mongodb,Mongodb,我有一个具有以下结构的MongoDB文档: { name:'some name here', someStuff: [ { type: 'banana', colors:['yellow','red] }, { type:
{
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']
}
}
}
}
您能给我一些如何编写此查询的提示吗?您缺少一些小东西,请不要在
颜色之后使用$elemMatch
检查以下查询:
db.collectionName.find({
"someStuff": {
"$elemMatch": {
"colors": {
"$in": ["red", "green"]
}
}
}
}).pretty()
使用查询嵌入文档:
db.SomeDB.find({"someStuff.colors": {"$in": ["red", "green"]}})
谢谢,你的解决方案很有效,但chridam的回答更“优雅”