#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : Benjamin
# @Time   : 2019/8/7 21:02

import pymongo

myclient = pymongo.MongoClient("mongodb://192.168.230.129:27017/")



# 获取库列表名称,以数组格式展示
# dblist = myclient.list_database_names()
# print(dblist)
# if "benjamin" in dblist:
#   print("数据库已存在!")
# else:
#     print("不存在")

# 操作选择某一个数据库,查看是否存在某个集合
# mydb = myclient["benjamin"]
# collist = mydb.list_collection_names()
# print(collist)
# if "sites" in collist:   # 判断 sites 集合是否存在
#   print("集合已存在!")

# 创建数据库或集合,需要有数据才能查询到对应的数据



# 增
# 选择某个数据库后,操作集合并插入数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# mydict = {"name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"}
# x = mycol.insert_one(mydict)
# print(x)
# # 插入单条数据后并返回数据的id
# print(x.inserted_id)

# 选择某个数据库后,操作集合并插入多个数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# 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)

# 选择某个数据库后,操作集合并插入多个指定_id数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# mylist = [
#   { "_id": 1, "name": "RUNOOB", "cn_name": "菜鸟教程"},
#   { "_id": 2, "name": "Google", "address": "Google 搜索"},
#   { "_id": 3, "name": "Facebook", "address": "脸书"},
#   { "_id": 4, "name": "Taobao", "address": "淘宝"},
#   { "_id": 5, "name": "Zhihu", "address": "知乎"}
# ]
# x = mycol.insert_many(mylist)
# # 插入多条数据后并返回数据的id
# print(x.inserted_ids)



# 查
# 查询指定集合中的一条数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# x = mycol.find_one()
# print(x)

# 查询指定集合中的所有数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# for x in mycol.find():
#     print(x)

# 查询指定集合中的指定字段数据,俗称指定列中有数据的字段
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }):
#   print(x)
# 若_id为1,则除了alexa字段外其他都返回,仅有_id可为0、1,其他字段不能否则异常
# for x in mycol.find({},{ "alexa": 0 }):
#   print(x)

# 查询指定集合中,指定符合name名称的数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# myquery = { "name": "shit" }
# mydoc = mycol.find(myquery)
# for x in mydoc:
#     print(x)
# 支持正则表达式、首字母大于等方式查询

# 查询指定集合中,指定条数记录
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# myresult = mycol.find().limit(3)
# print(myresult)
# for x in myresult:
#     print(x)



# 改
# 修改指定集合中的符合某数据的第一条数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# myquery = { "alexa": "10000" } # 查询条件
# newvalues = { "$set": { "alexa": "12345" } } # 修改目标值
# mycol.update_one(myquery,newvalues) # 修改一条的数据,即第一条数据
# # 打印所有集合的数据
# for x in mycol.find():
#     print(x)

# 修改指定集合中的符合某数据的全部数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# myquery = { "name": { "$regex":"^F" } } # 正则查询条件
# newvalues = { "$set": { "alexa": "123" } }
# x = mycol.update_many(myquery,newvalues)
# print(x.modified_count,"文档已修改")



# 排序
# 查询指定集合中的所有数据后排序
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# # mydoc = mycol.find().sort("alexa") # 默认为升序排列
# mydoc = mycol.find().sort("alexa",-1) # 按照降序排列
# # 为空的数据最小,默认排在最前或最后
# for x in mydoc:
#   print(x)



# 删
# 删除集合中的符合某字段数据的第一条数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# myquery = {"name":"Taobao"}
# mycol.delete_one(myquery)
# # 删除后符合条件的第一条数据后,输出集合中的所有数据
# for x in mycol.find():
#     print(x)

# 删除集合中的符合某字段数据的所有数据
# mydb = myclient["benjamin"]
# mycol = mydb["sites"]
# myquery = {"name":{"$regex":"^F"}} # 正则匹配查找数据
# x = mycol.delete_many(myquery) # 删除符合条件的所有数据
# print(x.deleted_count,"个文档已删除")

# 删除集合中的所有数据
# mydb = myclient["benjamin"]
# mycol = mydb["conllectionName"]
# x = mycol.delete_many({})
# print(x.deleted_count, "个文档已删除")

# 删除指定集合
# mydb = myclient["benjamin"]
# mycol = mydb["conllectionName"]
# mycol.drop()

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐