因此,我正在尝试找出执行此操作的最佳方法。我已将文件转储到收藏集中。其中包括一个ID和一个作为数组的时间戳。基本上,我想完成的工作是,如果ID上有冲突,我想将新时间戳推送到数组,否则我要对整个文档进行高插入。我不知道它是否会改变任何东西,但是我正在使用pymongo。
答案 0 :(得分:0)
如果您还想保留唯一的时间戳,则$addToSet
operator可以与ups一起使用。否则,$push
operator将用于在ID
字段发生冲突时将每个时间戳添加到数组的末尾。
实现此目的的示例查询如下:
from pymongo import MongoClient
from bson.objectid import ObjectId
from time import time
client = MongoClient()
db = client.experiments
id_ = ObjectId('5b6d2a8ed35b7caf9fde936f')
ts = time() + 300
db.sample.update_one(
{'ID': id_}, # filter
{'$addToSet': {'timestamp': ts}}, # update
upsert=True
)
记录了有关pymongo.collection.Collection.update_one
的更多信息。