【问题标题】:Update_one in pymongo with different fields type [duplicate]pymongo中的Update_one具有不同的字段类型[重复]
【发布时间】:2019-08-20 11:53:06
【问题描述】:

在 mongoDB 集合中,我有不同的字段类型。是否可以使用 update_one 方法更新此集合中的文档?

doc = {"upd_time": datetime.datetime.now(), "categories": [1,2,3]}
mng_collection.update_one({"_id": id}, {"$set": doc}, upsert=True)

该代码替换类别字段中的现有数组,但如果集合 doc 数组中不存在,我需要从 doc["categories"] 数组中添加值。

【问题讨论】:

标签: mongodb pymongo


【解决方案1】:

您需要使用$push$each 来向现有数组添加元素。 $set 将始终用新值替换现有值。

你可以试试这个:

doc = {"upd_time": datetime.datetime.now(), "categories": [1,2,3]}
mng_collection.update_one({"_id": id}, {
    "$set": { "doc.upd_time" : doc.upd_time},
    $push : {categories : {$each : doc.categories}}
}, upsert=True)

阅读更多关于$push documentation, and how to use it with $each here的信息。

【讨论】:

  • 出色的解决方案
猜你喜欢
  • 2020-09-12
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 2021-12-01
  • 2018-12-01
相关资源
最近更新 更多