Mongodb On Python (1)

Python上使用MongoDB
不多说,直接上代码!

#coding: UTF-8

from pymongo import MongoClient


def db_test_novel_update():
    client = MongoClient('localhost',27017) #connect mongo database
    db = client.TestDB
    table = db['test']
    task = {
        'user':'joe'
                        }
    search_result = table.find(task)
    
    modify = { "$set": { "user": "12345" } }
    table.update_one(task,modify)
    
def db_test_novel_puth():
    client = MongoClient('localhost',27017) #connect mongo database
    db = client.TestDB
    table = db['test']
    task = {
        'user':'12345'}
    modify = { "$push": { "now_address": "上海" } }
    # table.update(task,{'$push':{"title":"t2"}})
    # table.update(task,modify)
    # table.update(task,{'$push':{"address":[
    #     {'add':'上海'},
    #     {'add':'江苏'},
    #     {'add':'安徽'},
    #     {'add':'北京'},
    # ]}})
    table.update(task,{"$push":{"tags":"Test"}})
    table.update(task,{"$addToSet": {"tags":{"$each":["Python","Each"]}}})
    

def db_test_novel_id():
    client = MongoClient('localhost',27017) #connect mongo database
    db = client.task
    result = db.task.find({'user':'12345'})
    print list(result)[0]['_id']

def db_test_novel_search_address():
    client = MongoClient('localhost',27017) #connect mongo database
    db = client.TestDB
    table = db['test']
    task = {
        'user':'12345'}
    result = db.task.find(task)
    print list(result)


# 避免加入了重复的,可以将”$push”改为使用”$addToSet”
def db_test_novel_update_avoid_reinsert():
    client = MongoClient('localhost',27017) #connect mongo database
    db = client.TestDB
    table = db['test']
    task = {
        'user':'12345'}
    
    table.update(task,{"$addToSet": {"tags":{"$each":["Python","Each",'Java']}}})

def db_test_novel_pop():
    client = MongoClient('localhost',27017) #connect mongo database
    db = client.TestDB
    table = db['test']
    task = {
        'user':'12345'}
    # 这个会删除tags里面最后一个,改成-1则删除第一个
    table.update(task,{"$pop":{"tags":-1}})

# 可以使用”$pull”来删除数组中指定的值,它会删除数组中所有匹配的值
def db_test_novel_delete_one():
    client = MongoClient('localhost',27017) #connect mongo database
    db = client.TestDB
    table = db['test']
    task = {
        'user':'12345'}
    # 这个会删除tags里面最后一个,改成-1则删除第一个
    table.update(task,{"$pull":{"tags":'Each'}})

# 如何修改其中的一个值呢?可以先删除掉,再增加一个进去,还有就是直接定位修改
def db_test_novel_update_sub():
    client = MongoClient('localhost',27017) #connect mongo database
    db = client.TestDB
    table = db['test']
    table.update({"tags":'Python'},{"$set":{"tags.$":"Hello"}})

if __name__ == '__main__':
 
    create = 5
    if 1 == create:
        db_test_novel_createDB()
        db_test_novel_update()
        db_test_novel_puth()
        db_test_novel_id()
    elif 2 == create:
        db_test_novel_update_avoid_reinsert()
    elif 3 == create:
        db_test_novel_pop()
    elif 4 == create:
        db_test_novel_delete_one()
    elif 5 == create:
        db_test_novel_update_sub()
 
    exit()
    
    

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。