mongo学习

import pymongo
import datetime
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
print('数据表有:', myclient.list_database_names())  # 列出数据表
count = myclient["ankus_xlgui"]["wxids"].count_documents({})  # 统计表中有多少条数据
print("微信好友人数", count)

def insertonevalue():  # 插入一条数据
    mydb = myclient["ankus_xlgui"]
    mycol = mydb["tasks"]

    mydict = {
        "wxid": "wxid_1042150421314",
        "trigger": "dc:dailycheck",
        "module_func": "dailycheck.dailycheck()",
        "runtime": "8:40",
        "cycle": "24",
        "creator": "admin",
        "create_time": datetime.datetime.now(),
        "status": True
    }
    # 可以往一张表中插入不同字段的数据
    x = mycol.insert_one(mydict)
    print(x)


# insertonevalue()

def insertmanyvalue():  # 插入多条数据
    mydb = myclient["runoobdb"]
    mycol = mydb["sites"]

    mylist = [
        {"name": "Taobao", "alexa": "100", "url": "https://www.taobao.com"},
        {"name": "QQ", "alexa": "101", "url": "https://www.qq.com"},
        {"name": "Facebook", "alexa": "10", "url": "https://www.facebook.com"},
        {"name": "知乎", "alexa": "103", "url": "https://www.zhihu.com"},
        {"name": "Github", "alexa": "109", "url": "https://www.github.com"}
    ]

    x = mycol.insert_many(mylist)

    # 输出插入的所有文档对应的 _id 值
    print(x.inserted_ids)


# insertmanyvalue()

def selectont():  # 查询一条数据
    mydb = myclient["ankus_xlgui"]
    mycol = mydb["trigger_task"]
    x = mycol.find_one()
    print(x['trigger'])


# selectont()

def selectall(db, table):  # 查询所有数据
    mydb = myclient[db]  # 选择数据库
    mycol = mydb[table]  # 选择数据表

    for x in mycol.find({}, {"_id": 0, "send_time": 1}):
        send_time = x["send_time"]
        print(type(send_time), send_time)


# selectall("ankus_xlgui", "send_msg")


def selectappoint():  # 查询指定字段的数据
    mycol = myclient["ankus_xlgui"]['tasks']
    # 使用find()方法来查询指定字段的数据,将要返回的字段对应值设置为1。

    # 不取出字段_id, 取出字段name和alexa, 注意有些记录可能为空
    for x in mycol.find():

        print(x.get("trigger"))

    # 注意, 在一次筛选中如果要一部分字段不要另一部分字段, 只需要写那些要的字段为1
    # 错误写法  要name不要url   for x in mycol.find({}, {"_id": 0, "name": 1, "url": 0}):
    # 报错 pymongo.errors.OperationFailure
    # 所有某些字段不要就不要写!除了_id:0


# selectappoint()

def selectByName():  # 根据指定条件查询
    mydb = myclient["runoobdb"]
    mycol = mydb["sites"]

    # 选择name为RUNOOB的记录, 再取出它的name和url字段
    mydoc = mycol.find({"name": "RUNOOB"}, {"name": 1, "url": 1, "_id": 0})

    for x in mydoc:
        print(x)


# selectByName()


# 高级查询
def senior():
    mydb = myclient["runoobdb"]
    mycol = mydb["sites"]

    # 读取 name 字段中第一个字母 ASCII 值大于 "H" 的数据,大于的修饰符条件为 {"$gt": "H"} :
    myquery = {"name": {"$gt": "H"}}

    mydoc = mycol.find(myquery, {"_id": 0, "name": 1})

    for x in mydoc:
        print(x)


# senior()

def seniorREX():  # 使用正则表达式
    mydb = myclient["runoobdb"]
    mycol = mydb["sites"]

    myquery = {"name": {"$regex": "^R"}}

    mydoc = mycol.find(myquery)

    for x in mydoc:
        print(x)


# seniorREX()

def seniorLimit():  # 返回指定条数记录
    mydb = myclient["runoobdb"]
    mycol = mydb['sites']
    for x in mycol.find({}, {}).limit(3):
        print(x)


# seniorLimit()
myclient.close()

"""在mycol.find({}, {})中, 第一个{}是对字段的高级搜索, 例如可以对字段name进行精确查找和模糊查找(ASCII, REX)
    第二个{}, 表示查找的结果要输出哪些字段, 要的字段为键,值为1,不要就不写
"""

大家这么喜欢,我就不要资源分了,改成0分了,我为我一己私利感到抱歉…… MongoDB学习手册 ......................................................................................................................... 1 说明.......................................................................................................................................... 2 一、 Mongodb简介 .......................................................................................................... 4 二、 MongoDB特性 ......................................................................................................... 5 适用场景: ....................................................................................................................... 5 不适用场景: ................................................................................................................... 6 三、 MongoDB的工作方式.............................................................................................. 6 四、 MongoDB的下载 ..................................................................................................... 8 五、 MongoDB的安装 ..................................................................................................... 9 六、 MongoDB数据类型................................................................................................ 12 1. Timestamp类型 ...................................................................................................... 12 2. ObjectId类型 .......................................................................................................... 12 3. 数据库关联 ............................................................................................................. 14 七、 GridFS文件系统 ..................................................................................................... 15 八、 索引 ......................................................................................................................... 16 九、 主(Master)/从(slave)数据库同步 ................................................................ 20 1. 建立主/从服务器 ................................................................................................... 20 2. 相关参数说明 ......................................................................................................... 21 3. Slave顶替Master ................................................................................................... 22 4. 切换Master/Slave角色 ......................................................................................... 22 5. 更新主服务器位置 ................................................................................................. 22 十、 MongoDB分片和集群............................................................................................ 24 1. 简单分片实例 ......................................................................................................... 24 2. 高级分片实例 ......................................................................................................... 29 十一、 数据库基本操作:增查删改 ............................................................................. 37 1. Insert ....................................................................................................................... 37 2. Query ....................................................................................................................... 38 3. Remove.................................................................................................................... 52 4. Update ..................................................................................................................... 53 十二、 Shell控制台 ........................................................................................................ 62 1. 执行.js文件 ............................................................................................................ 62 2. –eval ........................................................................................................................ 62 3. 脚本和互动的区别 ................................................................................................. 62 十三、 安全与认证 ......................................................................................................... 63 1) 开启安全认证 ......................................................................................................... 63 2) 添加用户 ................................................................................................................. 64 3) 认证 ......................................................................................................................... 64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值