1. 连接
这里只记录无auth连接方式。
import pymongo
ip = 'xxxxxx'
client = pymongo.MongoClient(ip, 27017)
2. 创建数据库
创建数据库douban_books
db = client.douban_books
3. 添加文档
这里对douban_books数据库的book集合进行操作。book集合不需要事先创建。
记录两种添加方式:db.collection.insert_one
、db.collection.insert_many
# db.book.remove({}) 清空
book1 = {'book_id': 1001, 'author': '吴承恩', 'book_name': '西游记', 'price': 22, 'public': '清华大学出版社'}
book2 = {'book_id': 1002, 'author': '曹雪芹', 'book_name': '红楼梦', 'price': 20, 'public': '清华大学出版社'}
book3 = {'book_id': 1003, 'author': '施耐庵', 'book_name': '三国演义', 'price': 20, 'public': '清华大学出版社'}
db.book.insert_one(book1)
db.book.insert_many([book2, book3])
4. 查询文档
记录两种添加方式:db.collection.find_one
、db.collection.find
。
db.collection.find_one
返回的是dict
对象db.collection.find
返回的是pymongo.cursor.Cursor
对象,可以转换为list
print(db.book.find_one({'book_id': 1001}))
results = db.book.find()
for result in results:
print(result)
5.特殊查询
and查询
print(db.book.find_one({"$and": [{"price": {"$gt": 20}}, {"public": "清华大学出版社"}]}))
or查询
res = db.book.find({"$or": [{"price": {"$lt": 15}}, {"price": {"$gt": 19}}]})
# pymongo.cursor.Cursor.count() 返回查找到的元素总数
print(res.count())
for elem in lst:
print(elem)
6. 排序
排序sort()
调用sort方法,传入要排序的字段and升降序标志即可,默认是升序ASCENDING
, 降序为DECENDING
results = db.book.find().sort('price', pymongo.DESCENDING)
print([result['book_name'] for result in results])
#多列排序,注:ord('三')<ord('红')
results = db.book.find().sort([
("price", pymongo.DESCENDING), ("book_name", pymongo.ASCENDING)
])
print([result['book_name'] for result in results])
待补