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": "[email protected]",
        "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": "[email protected]"},
        {
            "$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": "[email protected]"},
        {
            "account": "[email protected]",
            "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.
        attintion: 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()
 
时间: 2024-10-26 20:44:34

pymongo学习第1篇——增删改查的相关文章

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas

python学习之-员信息增删改查

python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证, #!/usr/bin/env python# coding=utf8#author:[email protected] import os, sys, time,jsonimport re member_dict = \ {}member_name_list = []member_list = []def handler_mem

TP5学习基础一:增删改查小demo

①TP5--增删改查简单的demo 我先吐槽一下:因为工作需要研究tp5,去官网看了一下哎呦,资源挺多挺全啊!然后下载唯一免费的官方教程,我曹pdf打开533页.讲的很细但是开发能等看完才做吗?看到精简版快速入门的还软妹币20试读3章.寻思找个demo案例吧,要不加群拿源码,要不视频教程收费.特喵的框架是开源的但是教程是收费的.寻思去论坛看看问题,不是我喷好多技术小白的问题,我想看看怎么获取传参传值,泥煤那个系统变量是什么鬼?挣扎了3个小时我放弃了官网.在度娘上找到一个demo,吭哧吭哧啃完.一

全文检索之lucene的优化篇--增删改查

主要介绍增删改查索引的功能,并且对于查询到的关键字,返回高亮的结果.高亮的效果,就是将查询出来的结果,在前后加上标签,<font color="red">和</font>这样在浏览器显示的就是红色的字体. 目录效果如上,建立一个com.lucene的包,建立一个IndexDao的类,里面写入索引的增删改查方法;而建立的IndexDaoText类则是对这增删改查的测试;QueryResult则是一个查询结果的类,里面只有2个字段,总记录数和记录集合. 其中Inde

学习Mysql第二天--增删改查

跬步何以至千里 今天主要学习增删改查,坚持每天学习一点 增删改查主要还是记住命令以及语法. 增删改查命令中都需要有表名 增 insert into 表名 value(); 删 delete from 表明 where from 参数 = “”; 改 update 表名 set 参数 = "" where owner = ""; 查 select * from 表名; 查看数据表的结构 (参数 类型等) desc 表名; mysql数据类型(引用菜鸟教程) MySQL

MVC学习-用EF做增删改查

在DbContext中有两个很重要的方法: 一.几个方法的说明 1.一个是Entry()方法: public DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class; 可以将 任何类型的数据放入到上下文对象中 DbEntityEntry有个 属性EntityState,它可以为上下文中的对象做标识,并依照标识的值做相应的sql操作 public enum EntityState { De

MyBatis学习系列二之增删改查

数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连接数据库的配置单独放在.properties 文件中,然后在XML文件中引用,示例如下: config.properties: driver=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@127.0.0.1:1521:orcl username=pho

java学习笔记之分层增删改查

增删改查 一.准备jar包 数据库驱动包 DBUtils包 C3P0连接池 的jar包 二.配置好C3P0的配置文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <c3p0-config> 3 <!-- 默认配置 --> 4 <default-config> 5 <property name="driverClass">com.mysql.jdb

MongoliaDB学习(2)增删改查

看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然 傻眼了,擦,竟然开启不了,仔细观察"划线区域"的信息,发现db文件夹下有一个类似的"lock file"阻止了mongodb的开启,接下来我们要做的就 是干掉它,之后,开启成功,关于mongodb的管理方式将在后续文章分享. 一: Insert操作 上一篇也说过,文档是采用"K-V"格式存储的,如果大家对JSON