Python 如何使用pymongo使用单个文档更新mongodb集合?
如果使用以下方法创建包含单个文档的集合:Python 如何使用pymongo使用单个文档更新mongodb集合?,python,mongodb,pymongo,pymongo-3.x,Python,Mongodb,Pymongo,Pymongo 3.x,如果使用以下方法创建包含单个文档的集合: db.time_data.insert({"Last_updated":"Jan 6 22:19:48 IST","Next_scheduled":"Jan 6 23:19:48 IST"}) 如何更新上次更新的和下次更新的计划字段? 我希望在不使用任何update命令选择器的情况下执行此操作。这里的选择器是自动生成的id。不确定您是如何使用以下方法创建文档的: db.time_data.insert({"Last_updated":"Jan 6 22
db.time_data.insert({"Last_updated":"Jan 6 22:19:48 IST","Next_scheduled":"Jan 6 23:19:48 IST"})
如何更新上次更新的
和下次更新的计划字段
?
我希望在不使用任何update命令选择器的情况下执行此操作。这里的选择器是自动生成的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"})
(或)
(或)
因此,您可以使用上述任何一种方法,甚至可以使用。updateMany()
根据需要,检查他们的响应—有些返回写入结果,有些返回更新的文档(如果您将选项设置为返回新文档)。这些查询是针对mongoDB shell的,请在pymongo Ref链接中搜索update,以将这些查询转换为与python一起使用(最基本的变化是语法上的变化,比如从updateOne
到updateOne
,updateMany
到updateMany
,也要检查传递给它们的选项,因为它们可能会因mongoDB shell和pymongo
/mongoDB驱动程序
/mongoose
等驱动程序的不同而有所不同)
MongoDB参考号:
pymongo Ref:不确定您是如何使用以下方法创建文档的:
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"})
(或)
(或)
因此,您可以使用上述任何一种方法,甚至可以使用。updateMany()
根据需要,检查他们的响应—有些返回写入结果,有些返回更新的文档(如果您将选项设置为返回新文档)。这些查询是针对mongoDB shell的,请在pymongo Ref链接中搜索update,以将这些查询转换为与python一起使用(最基本的变化是语法上的变化,比如从updateOne
到updateOne
,updateMany
到updateMany
,也要检查传递给它们的选项,因为它们可能会因mongoDB shell和pymongo
/mongoDB驱动程序
/mongoose
等驱动程序的不同而有所不同)
MongoDB参考号:
pymongo Ref:这里的选择器将是自动生成的id-->您的意思是
\u id
?为什么要在没有任何用于更新命令的选择器的情况下进行更新?使用选择器有什么问题吗?我不需要任何选择器,因为我处理的是单个文档。这里的选择器将是自动生成的id->你的意思是\u id
?为什么要在没有任何用于更新命令的选择器的情况下更新?使用选择器有什么问题吗?我不需要任何选择器,因为我处理的是单个文档。正如你在回答中提到的,在我的问题中插入命令的语法有错误。现在我已经更新了问题。正如您在回答中提到的,我的问题中的insert命令的语法有错误。现在我已经更新了问题。