如果我使用以下方法创建单个文档的集合:
db.time_data.insert({"Last_updated":"Jan 6 22:19:48 IST"},{"Next_scheduled":"Jan 6 23:19:48 IST"});
如何更新Last_updated
和Next_scheduled fields
?我想不使用任何选择器来执行更新命令。在这里,选择器将是自动生成的ID。
不确定您如何使用::>创建文档
db.time_data.insert({"Last_updated":"Jan 6 22:19:48 IST"},{"Next_scheduled":"Jan 6 23:19:48 IST"})
因为该操作将导致这样创建文档:
/* 1 */ { "_id" : ObjectId("5e1374692a0e7dc716ae47fa"), "Last_updated" : "Jan 6 22:19:48 IST" }
这很安静,因为忽略了第二个对象
{"Next_scheduled":"Jan 6 23:19:48 IST"}
,您的查询应该像下面这样,以便创建具有两个字段的单个文档:
db.time_data.insert({"Last_updated":"Jan 6 22:19:48 IST","Next_scheduled":"Jan 6 23:19:48 IST"})
更新:
由于您的收藏集只有一个文档,因此您实际上不需要任何过滤器即可对其进行更新:
db.time_data.update({}, {"Last_updated":"Jan 7 22:19:48 IST","Next_scheduled":"Jan 7 23:19:48 IST"})
(或)
db.time_data.updateOne({}, {$set :{"Last_updated":"Jan 8 22:19:48 IST","Next_scheduled":"Jan 8 23:19:48 IST"}})
(或)
链接中搜索update,以将其转换为可与python一起使用。db.time_data.findOneAndUpdate({}, {$set :{"Last_updated":"Jan 9 22:19:48 IST","Next_scheduled":"Jan 9 23:19:48 IST"}})
因此,您可以根据需要使用以上或什至
.updateMany()
中的任何一个,请检查其响应是否返回了一些写结果,还是返回了更新过的文档(如果您设置了返回新文档的选项)。这些查询适用于mongoDB shell,请在pymongo Ref
MongoDB参考:
update,.findOneAndUpdate()pymongo参考:
pymongo-doc