1 from pymongo import MongoClient
2 from datetime import datetime
3
4
5 class TestMongo(object):
6
7 def __init__(self):
8 self.client = MongoClient() # 连接数据库
9 self.db = self.client['blog'] # 使用blog数据库
10
11 def add_one(self):
12 """新增数据"""
13 post = {
14 'title': '新的标题',
15 'content': '博客内容。。。。',
16 'created_at': datetime.now(),
17 'view': 10
18 }
19 return self.db.blog.posts.insert_one(post) # 数据库下的集合(表)名为 blog.posts
20
21 def get_one(self):
22 """查询一条数据"""
23 return self.db.blog.posts.find_one()
24
25 def get_more(self):
26 """查询所有数据"""
27 return self.db.blog.posts.find()
28
29 def get_from_oid(self, oid):
30 """根据记录的ID来获取数据"""
31 from bson.objectid import ObjectId # 使用ObjectID才能查询到数据
32 return self.db.blog.posts.find_one({'_id': ObjectId(oid)})
33
34 def update(self):
35 """修改数据"""
36 # 修改一条数据
37 rest = self.db.blog.posts.update_one({'view': 10}, {'$inc': {'view': 1}}) # $inc将view增加1,$set会将view设置成指定值
38 print(rest.matched_count) # matched_count 匹配的次数
39 print(rest.modified_count) # modified_count 修改成功的数据条数
40 # 修改多条数据
41 rest = self.db.blog.posts.update_many({}, {'$inc': {'view': 10}}) # 将所有的view增加10
42 print(rest.matched_count)
43 print(rest.modified_count)
44
45 def delete(self):
46 """删除数据"""
47 # 删除一条数据
48 rest = self.db.blog.posts.delete_one({'view': 10})
49 print(rest.deleted_count) # deleted_count 删除成功的数据条数
50 # 删除多条数据
51 rest = self.db.blog.posts.delete_many({'title': '新的标题'})
52 print(rest.deleted_count)
53
54
55 def main():
56 obj = TestMongo()
57 # rest = obj.add_one()
58 # rest = obj.get_more()
59 # for item in rest:
60 # print(item)
61 # obj.update()
62 # obj.delete()
63
64
65 if __name__ == '__main__':
66 main()