MongoDB $ addToSet создает значение как объект - PullRequest
1 голос
/ 01 декабря 2011

При обновлении я пытаюсь создать новый элемент массива или добавить его в существующий массив, как я интерпретировал $ addToSet для работы:

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

Но если тег не существует, я получаю значение как объект, а не массив:

"тег": { "0": "Бесплатная доставка" },

* используя +1010 *

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

1 Ответ

2 голосов
/ 01 декабря 2011

Я только что попытался продублировать это и получил правильный результат, пожалуйста, проверьте ниже:

> 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 вы используете в данный момент, так как она работает должным образом (и, как вы предполагаете).

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...