【发布时间】:2018-04-06 14:01:21
【问题描述】:
我必须以左移方式在 MongoDB 中插入文档,即如果集合包含 60 个文档,我将删除第一个文档,并且我想在数据库的后面插入新文档。但是当我插入第 61 个元素等时,文档被插入到随机位置。 有什么方法可以按照我上面指定的顺序插入文档吗? 或者当我从数据库中检索值时是否必须进行此处理?如果是,那怎么办? 数据格式为:
data = {"time":"10:14:23", #timestamp
"stats":[<list of dictionaries>]
}
我使用的代码是
from pymongo import MongoClient
db = MongoClient().test
db.timestamp.delete_one({"_id":db.timestamp.find()[0]["_id"]})
db.timestamp.insert_one(new_data)
时间戳是集合的名称。
编辑:更改了代码。有没有更好的办法?
from pymongo.operations import InsertOne,DeleteOne
def save(collection,data,cap=60):
if collection.count() == cap:
top_doc_time= min(doc['time'] for doc in collection.find())
collection.delete_one({'time':top_doc_time['_time']})
collection.insert_one(data)
【问题讨论】:
标签: python database mongodb pymongo