zoukankan      html  css  js  c++  java
  • pymongo学习第1篇——增删改查

    参考文档:

    1、https://docs.mongodb.org/getting-started/python/

    2、http://api.mongodb.org/python/current/api/pymongo/index.html

    # -*- coding: utf-8 -*-
    import sys
    from datetime import datetime
    from pymongo import MongoClient
    import pymongo
    import re
    
    def main():
        '''connect to database.
                client = MongoClient()等价于client = MongoClient("localhost:27017")
        '''
        client = MongoClient()
        db = client.demo
        coll = db.address
    
        '''insert data.
            insert_one()
            insert_many()
        '''
        insertResult = coll.insert_one({
            "account": "PONPON7@163.com",
            "password": "123456",
            "birth": datetime.strptime("1990-09-22", "%Y-%m-%d"),
            "score": 102,
            "address": {"city": ["beijing", "wuxi", "chengdu"], "country": "China"},
            "articles": [{"title": "mongo常用操作小结", "author": "xiaomaque"},
                        {"title": "mysql小结", "author": "ponpon7"}]
        })
        print(insertResult.inserted_id)
        elements = [{"account": "ponpon7", "password": "afi89^^R", "birth": datetime.strptime("1986-12-12", "%Y-%m-%d"), "score": 172}, {"account": "liudehua", "password": "wangqingshui", "birth": "", "score": 18}]
        coll.insert_many(elements)
    
        '''find or query data.
            cursorAll: 查找score<140的数据,并且按account从小到大, score从大到小排序. $lt: less than<; $gt: greater than>
            cursorOr: logical OR
            cursorRegex: 通过正则表达式查找
        '''
        cursorAll = coll.find({"score": {"$lt": 140}}).sort([
            ("account", pymongo.ASCENDING),
            ("score", pymongo.DESCENDING)
        ])
        for document in cursorAll:
            print("All document: {}".format(document))
    
        cursorRegex = coll.find({"account": re.compile('p', re.I)})
        for document in cursorRegex:
            print("Regex document: {}".format(document))
    
        cursorOr = coll.find({"$or": [{"score": 172}, {"address.country": "China"}]})
        for document in cursorOr:
            print("score is 172 Or country is China: {}".format(document))
    
        '''update data & replace data.
            update_one(filter, update, upsert=False, bypass_document_validation=False)
                upsert: 如果为True,查不到符合filter的文档时会插入数据,默认为false
        '''
        updateResult = coll.update_many(
            {"account": "wxy@123.com"},
            {
                "$set": {"score": 129, "address": {"city": ["nanjing"], "country": "China"}},
                "$currentDate": {"lastModified": True}
            },
            # True
        )
        print("update: matched_count is {}".format(updateResult.matched_count))
        print("update: modified_count is {}".format(updateResult.modified_count))
    
        replaceResult = coll.replace_one(
            {"account": "wxy@123.com"},
            {
                "account": "wxy@123.com",
                "score": 139,
                "address": {"city": ["Paris"], "country": "France"},
            }
        )
        print("replace: matched_count is {}".format(replaceResult.matched_count))
        print("replace: modified_count is {}".format(replaceResult.modified_count))
    
        '''remove data.
            Attention: delete_many({})  delete all documents
                        coll.drop()  drop a collection
        '''
        deleteResult = coll.delete_many({"birth": datetime.strptime("1990-09-22", "%Y-%m-%d")})
        print("remove: deleted_count is {}".format(deleteResult.deleted_count))
    
    
    if __name__ == '__main__':
        main()
     
  • 相关阅读:
    编译内核时出现drivers/mfd/mxchdmicore.c:36:24: fatal error: mach/clock.h: No such file or directory
    IE中iframe标签显示在DIV之上的问题解决方案
    Linux驱动学习1.hello world;
    Maven安装与配置(转)
    Jmeter阶梯式压测
    Jmeter的分布式测试
    adb connect命令连接多个Android设备
    Linux当中文件的显示命令
    软件测试流程
    测试时间不够,该怎么办?
  • 原文地址:https://www.cnblogs.com/everSeeker/p/5055717.html
Copyright © 2011-2022 走看看