2016-09-13 4 views
0

УчитываяМонго Обновление массива запроса с использованием Upsert

  1. MenuItems список [ 'Foo', 'бар', 'Fooz', 'мяч'] и
  2. коллекция menudb имеет 3 записи: «Foo «„бар“,„Fooz“

Когда я бегу

menudb.update({"_id" : {"$in": menuItems}}, {"$addToSet": {"staleCount": 100}}, upsert=True) 

Вместо того чтобы создавать новую пластинку под названием„мяч“, он создает новую пластинку под названием» ObjectI д ("57d730777bc6a465c9124111").

Есть ли способ сделать «_id» вновь созданной записи таким, что из списка?

= Спасибо

ответ

0

вы можете удалить upsert, если вы не хотите, новый элемент в коллекции menudb. Мне кажется, что ваш id является objectId вместо строки.

https://docs.mongodb.com/manual/reference/operator/query/in/

вы можете проверить, если выходы _id Foo в коллекции menudb.update ({ "_ ID": "Foo"}, { "$ addToSet": { "staleCount": 100})

+0

Я хочу, чтобы новый элемент был создан, но с '_id' как 'ball' – iobelix

+0

выполните следующие действия, чтобы проверить, правильно ли в коллекции находится _id. дб. menudb.find() На выходе будет отображаться _id как строка или объект ... например. {"_id": ObjectId ("5773e26e27819b2bf0479460"), "Имя": "a", "Электронная почта": "[email protected] "} > – tomcat

Смежные вопросы