mongodb - pymongo中的Update_one具有不同的字段类型
问题描述
在 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"] 数组中添加值。
解决方案
您需要使用$push
with$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 文档以及如何将其与 $each 一起使用的更多信息。
推荐阅读
- mysql - 无法启动 Mysql (MariaDB)
- string - ShellScript 解析 sting 变量以通知发送
- java - Pivotal GemFire 9.3.0:GemFire 集群中的 Spring Data GemFire XML 配置
- parse-server - 在解析服务器日志中查看失败登录尝试的源 IP 地址
- javascript - 点击 Puppeteer 后检测 POST 响应到达
- c# - 反射方法调用对象与目标类型不匹配
- angular - IFrame 有时无法在 IE11 中运行
- javascript - 伊斯坦布尔纽约市包括测试文件
- c# - 在 Windows 4 月更新后,我的应用程序停止提供静态文件
- algorithm - 为什么循环中的会合点与链表的起点步数相同?