Mongo使用Upsert更新数组查询

时间:2016-09-13 01:36:16

标签: python mongodb

鉴于

  1. menuItems是一个列表['foo','bar','fooz','ball']和
  2. menudb collection有3条记录:'foo','bar','fooz'
  3. 当我跑步时

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

    不是创建一个名为'ball'的新记录,而是创建一个名为'ObjectId(“57d730777bc6a465c9124111”)'的新记录。

    有没有办法让新创建的记录'_id'成为列表中的那个?

    =由于

1 个答案:

答案 0 :(得分:0)

如果您不想在menudb集合中添加新项,则可以删除upsert。我好像你的id是objectId而不是string。

http://www.johndcook.com/blog/2010/06/15/why-computers-have-signed-zero/

您可以验证_id foo是否退出集合 menudb.update({“_ id”:“foo”},{“$ addToSet”:{“staleCount”:100})