[关闭]
@songying 2018-10-15T17:39:46.000000Z 字数 1792 阅读 1924

PyMongo 基础

pymongo


参考

官方文档

安装

  1. pip install pymongo
  2. import pymongo

与MongoClient建立连接

  1. from pymongo import MongoClient
  2. client = MongoClient()
  3. client = MongoCLient('localhost', 27017)
  4. client = MongoCLient('mongodb://localhost:27017/')

创建/选择数据库

  1. db = client.test_database
  2. db = Client['test-database']

创建/选择集合

  1. collection = db.test_collection
  2. collection = db['test-collection']

insert文档

插入一个文档

  1. collection = db.posts
  2. post_id = collection.insert_one(post).inserted_id

_id是pymongo自动生成的一列数字。
.insert_one(字典) : 插入文档
.inserted_id: 你刚刚插入到集合中的文档的id

插入多个文档

  1. new_posts = [{"author": "Mike",
  2. "text": "Another post!",
  3. "tags": ["bulk", "insert"],
  4. "date": datetime.datetime(2009, 11, 12, 11, 14)},
  5. {"author": "Eliot",
  6. "title": "MongoDB is fun",
  7. "text": "and pretty easy too!",
  8. "date": datetime.datetime(2009, 11, 10, 10, 45)}]
  9. result = collection.insert_many(new_posts)
  10. result.inserted_ids

显示数据库中的集合

  1. db.collection_names(include_system_collections=False)

显示集合中的所有文档

  1. show(collection)

update文档

  1. collection.update()
  2. # 参数1: 数据库中某一条记录的一个字段的值。它是一个“代号”, 保证我们在数据库中能找到它。
  3. # 参数2: 更新后打数据,字典格式
  4. dic['blog'] = '哒哒的博客一般人是不会知道的'
  5. collection.update({'name': "傻瓜哒哒"}, dic)

更新一条记录

  1. collection.update({'name': '刀塔传奇'}, {'$set': {"name": "可爱的Mongodb"}})
  2. collection.update_one({'name': '刀塔传奇'}, {'$set': {"name": "可爱的Mongodb"}})

更新符合条件的所有记录

  1. collection.update_many({'name': '刀塔传奇'}, {'$set': {"name": "可爱的Mongodb"}})

remove文档

  1. collection.remove({'name': '可爱的Mongodb'})

find文档

通过find_one()获取单个文档

  1. collection.find_one()
  2. # 返回值:
  3. 成功:文档内容
  4. 失败: None
  5. collection.find_one({"author": "Mike"})
  6. # 寻找含有该键值对的文档

通过对象_id来查询文档

  1. posts.find_one({"_id": post_id})
  2. # 注意此时打post_id并不是string格式

当你从web框架中获取一个文档的_id时,它是string类型,我们需要先将其转化为ObjectId

  1. document = client.db.collection.find_one({'_id': ObjectId(post_id)})

通过find()获取多个文档

  1. collection.find() # 集合中所有符合条件打文档
  2. collection.find({"age": {'$gt': 20}})

大于: $gt
小于 : $lt
大于等于: $gte
小于等于:$lte
不等于 : $ne

查询有几个符合查询条件的文档

  1. collection.find({"author": "Mike"}).count()
  2. collection.count() # 查询collection中到底有多少条记录
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注