python操作mongodb
import pymongo myclient = pymongo.MongoClient(‘mongodb://localhost:27017/‘) mydb = myclient[‘mongodb‘] mycol = mydb[‘sites‘] # -------------------------------------------添加----------------------------------------# # mydict = {‘name‘: ‘practice‘, ‘alexa‘: ‘10000‘, ‘url‘: ‘https://www.baidu.com‘} # x = mycol.insert_one(mydict) # 插入单条数据 # print(x.inserted_id) # 输出插入的所有文档对应的 _id 值 # 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) # 插入多条数据 # print(x.inserted_ids) # 输出插入的所有文档对应的 _id 值 # ------------------------------------------查询------------------------------------# # x = mycol.find_one() # print(x) # 查询单条数据 # for x in mycol.find(): # print(x) # 查询多条数据 # for x in mycol.find({}, {"_id": 0, "name": 1, "alexa": 1}): # print(x) # 可以使用 find() 方法来查询指定字段的数据,将要返回的字段对应值设置为 1。 # 以下实例除了 alexa 字段外,其他都返回: # for x in mycol.find({}, {"alexa": 0}): # print(x) # 除了 _id 你不能在一个对象中同时指定 0 和 1,如果你设置了一个字段为 0,则其他都为 1,反之亦然。 # myquery = {"name": "practice"} # mydoc = mycol.find(myquery) # for x in mydoc: # print(x) # 根据指定条件查询, find() 中设置参数来过滤数据。 # myquery = {"name": {"$gt": "H"}} # mydoc = mycol.find(myquery) # for x in mydoc: # print(x) # 读取 name 字段中第一个字母 ASCII 值大于 "H" 的数据,大于的修饰符条件为 {"$gt": "H"} # myquery = {"name": {"$regex": "^p"}} # mydoc = mycol.find(myquery) # for x in mydoc: # print(x) # 正则表达式修饰符只用于搜索字符串的字段。 # 以下实例用于读取 name 字段中第一个字母为 "R" 的数据,正则表达式修饰符条件为 {"$regex": "^R"} # myresult = mycol.find().limit(3) # 输出结果 # for x in myresult: # print(x) # 查询结果设置指定条数的记录可以使用 limit() 方法,该方法只接受一个数字参数。 # ---------------------------------------------修改------------------------------------------# # myquery = {"alexa": "10000"} # newvalues = {"$set": {"alexa": "12345"}} # mycol.update_one(myquery, newvalues) # 修改一个,update_one输出修改后的 "sites" 集合 # for x in mycol.find(): # print(x) # update_one() 方法只能修匹配到的第一条记录,如果要修改所有匹配到的记录,可以使用 update_many()。 # 以下实例将查找所有以 F 开头的 name 字段,并将匹配到所有记录的 alexa 字段修改为 123: # myquery = {‘name‘: {‘$regex‘: ‘^F‘}} # newvalues = {‘$set‘: {‘alexa‘: ‘153‘}} # x = mycol.update_many(myquery, newvalues) # 输出修改后的 "sites" 集合 # print(x.modified_count, "文档已修改") # modified_count统计修改的数目 # --------------------------------------------排序------------------------------------------# # mydoc = mycol.find().sort("alexa") # for x in mydoc: # print(x) # find().sort()默认用来升序排序, # mydoc = mycol.find().sort("alexa", -1) # for x in mydoc: # print(x) # find().sort(,-1)用来降序排序, # --------------------------------------------删除------------------------------------------# # myquery = {"name": "Taobao"} # mycol.delete_one(myquery) # delete_one,删除一个删除后输出 # for x in mycol.find(): # print(x) myquery = {"name": {"$regex": "^F"}} x = mycol.delete_many(myquery) print(x.deleted_count, "个文档已删除") # delete_many删除所有 name 字段中以 F 开头的文档 # x = mycol.delete_many({}) # print(x.deleted_count, "个文、档已删除") # delete_many() 方法如果传入的是一个空的查询对象,则会删除集合中的所有文档 # mycol.drop() # drop()方法来删除一个集合。
相关推荐
lbyd0 2020-11-17
BigYellow 2020-11-16
sushuanglei 2020-11-12
我心似明月 2020-11-09
zhushenghan 2020-11-09
sunnnyduan 2020-10-16
不要皱眉 2020-10-14
xiaohai 2020-09-29
songxiugongwang 2020-09-22
萌亖 2020-09-17
LuckyLXG 2020-09-08
sdmzhu 2020-09-01
mkhhxxttxs 2020-09-16
xiaohai 2020-09-16
newcome 2020-09-09
jaylong 2020-08-19
大秦铁骑 2020-08-19
thatway 2020-08-19