MongoDB $ addToSet将值创建为对象

时间:2011-11-30 21:02:26

标签: mongodb

在更新中,我正在尝试创建一个新的数组元素或添加到现有数组,这就是我解释$ addToSet工作的方式:

http://www.mongodb.org/display/DOCS/Updating

但是,如果“tag”不存在,我得到的是作为对象的值,而不是数组:

“tag”:{      “0”:“FreeShipping”   },

使用

db.collection.update({size:10.5},{$ addToSet:{tag:“FreeShipping”}});

1 个答案:

答案 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版本,因为它似乎按预期工作(并且正如您所假设的那样)。

谢谢!