在更新中,我正在尝试创建一个新的数组元素或添加到现有数组,这就是我解释$ addToSet工作的方式:
http://www.mongodb.org/display/DOCS/Updating
但是,如果“tag”不存在,我得到的是作为对象的值,而不是数组:
“tag”:{ “0”:“FreeShipping” },
使用
db.collection.update({size:10.5},{$ addToSet:{tag:“FreeShipping”}});
答案 0 :(得分:2)
我只是尝试复制这个并得到正确的结果,请检查以下内容:
> use test
switched to db test
> db.test.insert({item:"test"});
> db.test.findOne();
{ "_id" : ObjectId("4ed69f9d1812423106a229ac"), "item" : "test" }
> db.test.update({item:"test"},{$addToSet:{tag:"FreeShipping"}});
> db.test.findOne();
{
"_id" : ObjectId("4ed69f9d1812423106a229ac"),
"item" : "test",
"tag" : [
"FreeShipping"
]
}
是否可以显示您的添加查询?以及您目前使用的MongoDB版本,因为它似乎按预期工作(并且正如您所假设的那样)。
谢谢!