我在torando中使用mongodb学习python
我的数据是
[
{
"_id" : ObjectId("5671350061be0b0a6454d68e"),
"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "10-12-2015",
"StartDate" : "5-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "Booked"
"Period": "12-2015"
}
{
"_id" : ObjectId("5671350061be0b0a6454d68f"),
"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "20-12-2015",
"StartDate" : "15-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "NA"
"Period": "12-2015"
}
{
"_id" : ObjectId("5671350061be0b0a6454d690"),
"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "24-12-2015",
"StartDate" : "21-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "AOs"
}
{
"_id" : ObjectId("5671350061be0b0a6454d691"),
"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "30-12-2015",
"StartDate" : "25-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "AOr"
"Period": "12-2015"
}
]
我已尝试使用此代码进行批量删除
bulk = db.calendar.initializeUnorderedBulkOp()
bulk.find({"Period": p}).remove()
bulk.execute()
我还需要插入另一组我之前插入的数据
db.calendar.insert(data)
以
存储在数据库中 {
"_id" : ObjectId("5671350061be0b0a6454d68e"),
"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "10-12-2015",
"StartDate" : "5-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "Booked"
}
{
"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "10-12-2015",
"StartDate" : "5-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "Booked"
}
{
"_id" : ObjectId("5671350061be0b0a6454d690"),
"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "10-12-2015",
"StartDate" : "5-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "Booked"
}
{
"_id" : ObjectId("5671350061be0b0a6454d691"),
"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "10-12-2015",
"StartDate" : "5-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "Booked"
}
第一组数据
{"Pid" : "566bb17761be0b1e0059c09d",
"EndDate" : "10-12-2015",
"StartDate" : "5-12-2015",
"Registration" : "TN 64 KS 7777",
"Status" : "Booked"}
重复存储。
我想使用bulk
操作来解决这个问题。
任何人都可以告诉我该怎么做
我这样做了
p = "12-2015"
bulk = db.calendar.initializeUnorderedBulkOp()
bulk.find({"Period": p}).remove()
bulk.insert(data)
bulk.execute()
但得到了错误。
修改
我想使用批量,因为我必须在一个连接中访问两次相同的集合。
答案 0 :(得分:0)
对于批量删除,您不需要任何特殊内容。这应该没问题:
db.calendar.remove({"Period": p})
或者,如果您已经提取了以前使用的记录,则可以执行以下操作:
records = db.calendar.find({"Period": p})
records.remove()
您可以使用insert_many
在一个查询中插入数据。
db.calendar.insert_many(data)