是否可以在MongoDB上进行批量upsert,并让它返回新的,更改过的文档?

时间:2016-02-11 20:33:15

标签: python mongodb pymongo

我正在使用java 1 - 1 = 0 java 2 - 2 = 0 <--- min .net 3 - 1 = 2 java 4 - 3 = 1 <--- max java 1 - 1 = 0 java 2 - 2 = 0 .net 3 - 1 = 2 .net 4 - 2 = 2 ,我想将以下过程缩减为一个/更少的Mongo调用。

用例:

  1. 客户端访问我的API端点。

  2. 我的后端向Mongo发送一些数据(影响~10-100个文档)

  3. 我的API会将每个文档的新版本从集合返回给客户

  4. 现在,我所知道的就是:

    pymongo

    这是我现在的方法的要点,它感到非常浪费。似乎应该有办法做到这一点:

    from pymongo import MongoClient
    
    client = MongoClient(MONGO_URI)
    db = client[MONGO_DB]
    collection = db[MONGO_COLLECTION]
    
    for doc in docs:
        collection.update({<doc id>},{<doc>}, upsert=True)
    
    new = []
    for doc in docs:
        new.append(collection.find({<doc id>})[0])
    
    return new
    

    有可能吗?

0 个答案:

没有答案