相关文章推荐
序语程言

 1
#coding:utf-8
import pymongo
import threading
mclient = pymongo.MongoClient("127.0.0.1",27017)
mobj = mclient['dockerTest']
def insetData(name,data):
    mobj["yyxtest"].find_one_and_update(
        {"name":name},
        {"$set":data},
        upsert=True
if __name__ == '__main__':
    th1 = threading.Thread(target=insetData,args=("yang",{"age":18}))
    th2 = threading.Thread(target




    
=insetData,args=("yang",{"age":20}))
    th1.start()
    th2.start()
    for i in [th1,th2]:
        i.join()
    print("all done")

 1
/* 2 */
    "_id" : ObjectId("5dff8a311c89c4dc02845c71"),
    "name" : "yang",
    "age" : 18
/* 3 */
    "_id" : ObjectId("5dff8a311c89c4dc02845c72"),
    "name" : "yang",
    "age" : 20

 1
#coding:utf-8
import pymongo
import threading
mclient = pymongo.MongoClient("127.0.0.1",27017)
mobj = mclient['dockerTest']
def insetData(name,data,lock):
    lock.acquire()
    mobj["yyxtest"].find_one_and_update(
        {"name":name},
        {"$set":data},
        upsert=True
    lock.release()
if __name__ == '__main__':
    thlock = threading.Lock()
    th1 = threading.Thread(target=insetData,args=("fjy",{"age":18},thlock))
    th2 = threading.Thread(target=insetData,args=("fjy",{"age":20},thlock))
    th1.start()
    th2.start()
    for i in [th1,th2]:
        i.join()
    print("all done")

1
def insetData(name,data):
    mobj["yyxtest"].update(
        {"name":name},
        {"$set":data},
        upsert=True

1
def insetData(name,data):
    mobj["yyxtest"].find_one_and_update(
        {"name":name},
        {"$set":data},
        upsert=True,
        multi=True,

1
def insetData(name,data):
    with mclient.start_session() as session:
        with session.start_transaction():
            mobj["yyxtest"].find_one_and_update(
                {"name":name},
                {"$set":data},
                upsert=True,
                session=session
def insetData(name,data):
    session = client.start_session()
    session.start_transaction()
    try:
        mobj["yyxtest"].find_one_and_update(
            {"name": name},
            {"$set": data},
            upsert=True,
    except:
        session.abort_transaction()
    else:
        session.commit_transaction()
    finally:
        session.end_session()

 
推荐文章