我做错了什么或者我不明白$push(可能不明白)。无论如何,我有以下文件:
{
"_id" : ObjectId("501c83051d41c8753e000000"),
"node" : "denver",
"enc" : {
"environment" : "production",
"classes" : {
"denver" : ""
}
},
"inherit" : "default"
}
我正在尝试制作文件
{
"_id" : ObjectId("501c83051d41c8753e000000"),
"node" : "denver",
"enc" : {
"environment" : "production",
"classes" : {
"denver" : "",
"boulder" : ""
}
},
"inherit" : "default"
}
这就是我的更新语句:
col.update(
{
'node' : 'denver'
},
{
'$push': {
'enc.classes' : {
'boulder': ''
}
}
},
True)
我没有收到错误,但文档永远不会更新。如果我将 $push 更改为 $set,则丹佛将替换为巨石。
感谢您的任何帮助。
$push http://docs.mongodb.org/manual/reference/operator/push/在这种情况下不起作用,因为您正在尝试对对象使用数组函数。
To use $push
您需要将数据结构更改为以下内容:
{
"_id" : ObjectId("501c83051d41c8753e000000"),
"node" : "denver",
"enc" : {
"environment" : "production",
"classes" : [
"denver"
]
},
"inherit" : "default"
}
那么你的查询将是:
col.update(
{
'node' : 'denver'
},
{
'$push': {
'enc.classes' : 'boulder'
}
},
True
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)