我有mongo v 3.2 我需要过滤内部对象数组。但过滤器不起作用。
我有对象
{
_id: "112233",
mainOptions: {
option0: "op0",
option1: "op1",
option2: "op2"
},
instructions: [
0: {
number: 0,
header: {
desc: "d0",
inst: "i0"
}
items: [
0: {
info: {
text: "one info"
}
}
1: {
info: {
text: "two info"
}
}
]
}
1: {
number: 1,
header: {
desc: "d1",
inst: "i1"
}
items: [
0: {
info: {
text: "one info"
}
}
1: {
info: {
text: "two info"
}
}
]
}
]
}
我如何返回具有所有结构的对象,但是" items"我需要留下只有info.text ="两个信息"
的项目我尝试使用:
db.onlineBallots.aggregate(
[
{
"$match" : {
"_id": "112233",
"mainOptions.option0" : "op0"
}
},
{
"$project" : {
"mainOptions" : 1,
"instructions.items" : {
"$filter" : {
"input" : "$instructions.items",
"as" : "item",
"cond" : { "$regex": "two", "$options": "i" }
}
}
}
}
}
]
);
但过滤器不起作用。我收到" items"中的所有项目。 请帮我解决这个问题。