参考菜鸟教程: https://www.runoob.com/python3/python-mongodb.html
创建数据库,表,添加数据
#encoding=utf-8 #!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient("mongodb://192.168.25.142:27017") #创建数据库--SeaTestPy mydb = myclient["SeaTestPy"] #创建一个集合(表)--mytable mycol = mydb["mytable"] #获取该库下所有的colllction(表)的名字 collist = mydb. list_collection_names() # collist = mydb.collection_names() # 判断 sites 集合(collection)是否存在 if "mytable" in collist: print("集合已存在!") else: print("不存在,创建该表") print("----------插入数据到表中(单条数据)-------------------") mydict = { "name": "SeatestPy", "alexa": "10000", "url": "https://www.runoob.com" } x = mycol.insert_one(mydict) print(x) print("------------insert many 批量插入--------------") mylist = [ { "_id": 1, "name": "RUNOOB", "cn_name": "菜鸟教程"}, #如果指定了id ,那么会覆盖 { "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_many = mycol.insert_many(mylist) print(x_many)
查询数据:
#!/usr/bin/python3 import pymongo myclient = pymongo.MongoClient("mongodb://192.168.25.142:27017") #创建数据库--SeaTestPy mydb = myclient["SeaTestPy"] #创建一个集合(表)--mytable mycol = mydb["mytable"] #获取该库下所有的colllction(表)的名字 collist = mydb. list_collection_names() # collist = mydb.collection_names() # 判断 sites 集合(collection)是否存在 if "mytable" in collist: print("集合已存在!") else: print("不存在,创建该表") print("----------find all data-------------------") # datas=mycol.find() # for x in datas: # print(x) print("----------查询指定字段的数据-------------------") # # 我们可以使用 find() 方法来查询指定字段的数据,将要返回的字段对应值设置为 1。 # for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }): # print(x) print("----------根据指定条件查询-----------------") # myquery = { "name": "RUNOOB" } # mydoc = mycol.find(myquery) # for x in mydoc: # print(x) print("---------高级查询-----------------") # 查询的条件语句中,我们还可以使用修饰符。 # 以下实例用于读取 name 字段中第一个字母 ASCII 值大于 "H" 的数据,大于的修饰符条件为 {"$gt": "H"} # myquery = { "name": { "$gt": "H" } } # mydoc = mycol.find(myquery) # for x in mydoc: # print(x) print("---------使用正则表达式查询-----------------") # 使用正则表达式查询 # 我们还可以使用正则表达式作为修饰符。 # 正则表达式修饰符只用于搜索字符串的字段。 # 以下实例用于读取 name 字段中第一个字母为 "R" 的数据,正则表达式修饰符条件为 {"$regex": "^R"} : # myquery = { "name": { "$regex": "^R" } } # mydoc = mycol.find(myquery) # for x in mydoc: # print(x) print("---------返回指定条数记录-----------------") myresult = mycol.find().limit(5) # 输出结果 for x in myresult: print(x)