我有这个以下strtucture拉值 - >数组 - >对象 - >对象蒙戈
{
_id: ".....",
a: {
a1:".......",
b: [
b1: {
b11: "......",
b12: "......",
},
b2: {
b21: "......",
b22: "......",
d: {},
},
c:{
c1: {
......
},
d: {
}
}
]
}
}
在这里我要检查,如果财产d
存在与否里面b
,它可以在多个对象内部存在b
,如果存在,则从记录中提取d
对象。
注意:有可能是一个机会,财产d
存在多次内部b1
和b2
,在这种情况下,我想从所有对象
我试着像
Coll.find({ 'a.b': { $elemMatch: { 'c': { d: { $exists: true } } } } })
删除,但它没有返回任何东西,虽然有记录,任何帮助表示赞赏。
我想从记录中提取数据。
谢谢。
UPDATE
Coll.find({ 'a.b.c.d'{ $exists: true } })
是为我工作,但仍然不知道如何使用位置操作员从记录拉值
感谢您的回答,这里'B'是对象的数组,我的记录结构是正确的,我觉得。来到你的答案我想从记录中删除'object d'而不是获取数据,我可以读取数据,但是从记录中提取数据我找不到确切的查询 – Sasikanth
在数组上:尝试将您的示例插入到收集 - 查看错误。删除时:使用$ unset删除单个字段。更新我的答案以显示如何。 –