时间:2021-07-01 10:21:17 帮助过:39人阅读
查看该客户端的所有数据库:dblist = myclient.list_database_names()
判断数据库是否存在:if "runoobdb" in dblist: print("数据库已存在!")
创建集合:mycol = mydb["sites"]
查看该数据库的所有集合:collist = mydb. list_collection_names()
判断集合是否存在:if "sites" in collist: print("集合已存在!")
插入一个文档:
mydict = { "name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com" }
x = mycol.insert_one(mydict)
print(x)
输出结果:<pymongo.results.InsertOneResult object at 0x10a34b288>
insert_one() 方法返回 InsertOneResult 对象,该对象包含 inserted_id 属性,它是插入文档的 id 值。print(x.inserted_id)。如果我们在插入文档时没有指定 _id,MongoDB 会为每个文档添加一个唯一的 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)
# 输出插入的所有文档对应的 _id 值
print(x.inserted_ids)
插入查询结果文档集:
x.insert_many(mycol.find())
查询一条数据:
x = mycol.find_one() print(x)
查询集合中所有数据:
for x in mycol.find():
print(x)
查询指定字段:
for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }): ##0表示该字段不出现,1表示该字段出现。除了_id字段,其他字段数字要一致,即要么都为0要么都为1。
print(x)
条件查询:
等值查询:
myquery = { "name": "RUNOOB" }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
非等值查询:
# (>) 大于 - $gt
# (<) 小于 - $lt
# (>=) 大于等于 - $gte
# (<= ) 小于等于 - $lte
#例:查询集合中age大于25的所有记录
for i in my_col.find({"age":{"$gt":25}}):
print(i)
正则表达式查询:
## 读取 name 字段中第一个字母为 "R" 的数据
yquery = { "name": { "$regex": "^R" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
查询指定条数记录:
## 返回 3 条文档记录