我有一个类似于以下示例的文档,如果不存在,需要创建一个脚本以在阵列配置中插入键F。
{
"_id" : "5cde9ea5e326cd4bebbb2251",
"scenario" : "SCENARIO_A",
"step" : [
{
"type" : "STEP_TYPE_A",
"configs" : [
{
"key" : "A"
},
{
"key" : "B"
},
{
"key" : "C"
},
{
"key" : "D"
},
{
"key" : "E"
}
]
}
]
}
因此,我创建了此代码,但是它不起作用,没有在数组中插入项目。
var cursor = db.getCollection('MyColletion').find({
"scenario": "SCENARIO_A",
"step.type": "STEP_TYPE_A",
"step.configs.key": "F"
});
if (!cursor.hasNext()) {
cursor = db.getCollection('MyColletion').find({"scenario": "SCENARIO_A", "step.type": "STEP_TYPE_A"});
if (cursor.hasNext()) {
var doc = cursor.next();
print("updating doc with id = " + doc._id);
db.collection.update(
{ "_id" : doc._id, "step.type": "STEP_TYPE_A" },
{ "$push":
{ "step.$.configs":
{
"key" : "F"
}
}
}
);
} else {
print("step does not exist");
}
} else {
print("config does not exist");
}
如何解决这个问题?
答案 0 :(得分:0)
问题出在那行:
db.collection.update(
我更改为:
db.getCollection('MyCollection').update(