以下是我的MongoDb结构示例:
记录1:
{
"id" : 1,
"children" : [
{
"childID" : 1,
"fruitList" : "orange" <-----
},
{
"childID" : 2,
},
{
"childID" : 3,
"fruitList" : "apple" <-----
},
{
.
.
.
}
]
}
记录2:
{
"id" : 2,
"children" : [
{
"childID" : 1,
},
{
"childID" : 2,
"fruitList" : "" <----- it's empty
},
{
"childID" : 3,
},
{
.
.
.
}
]
}
我想进行查询更新..查询必须添加“hasFruit”=&gt;至少有一个孩子有果实的记录“真实”......我的意思是,记录中有一个字段“fruitList”存在,并且该字段的值不为空
所以,记录将是:
记录1:
{
"id" : 1,
"hasFruit" : true <-----
"children" : [
{
"childID" : 1,
"fruitList" : "orange"
},
{
"childID" : 2,
},
{
"childID" : 3,
"fruitList" : "apple"
},
{
.
.
.
}
]
}
记录2:
{
"id" : 2,
"hasFruit" : false <-----
"children" : [
{
"childID" : 1,
},
{
"childID" : 2,
"fruitList" : ""
},
{
"childID" : 3,
},
{
.
.
.
}
]
}
谢谢
答案 0 :(得分:0)
尝试以下查询。它过滤记录,其中至少有一个子项,其中fruitList存在且不是空字符串。
db.getCollection('test').update(
{"children.fruitList" : {$exists: true, $ne: ""}},
{$set: {hasFruit: true}},
{multi: true}
)