我的mongodb中有一堆以下格式的文件,我将Moongoose用作ORM。
有人可以帮我查询一下,以获取function funcName () { ... }
funcname()
内包含name
= abc
的所有内容
文档1:
data-items.content
文档2:
{
"title": "Some title",
"addresse": "data",
"data-items": {
"content": [
{
"name": "abc",
"age": "poster5.jpg"
},
{
"name": "def",
"age": "poster5.jpg"
},
{
"name": "hij",
"age": "poster5.jpg"
}]
}
}
感谢您的帮助
答案 0 :(得分:1)
您只需使用dot notation即可查询嵌套文档数组:
Model.find({"data-items.content.name": "abc"})
编辑:要仅获取符合您条件的子文档,可以在汇总下方使用
Model.aggregate([
{
$match: {
"data-items.content.name": "abc"
}
},
{
$unwind: "$data-items.content"
},
{
$match: {
"data-items.content.name": "abc"
}
},
{
$replaceRoot: {
newRoot: "$data-items.content"
}
}
])
$unwind将为您提供每个content
的单个文档,而$replaceRoot会将其提升到根目录。