当前位置:Gxlcms > 数据库问题 > python操作MONGODB数据库,提取部分数据再存储

python操作MONGODB数据库,提取部分数据再存储

时间: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 条文档记录

人气教程排行