MongoDB的简单操作

一.  MongoDB的启动

  1. 启动MongoDB服务

    mongod --dbpath d:\data  # 数据库存放路径, 模式c:\data

    mongod --install        # 安装windows服务

    mongod --remove        # 卸载windows服务

  2. 客户端连接

    mongo

二. MongoDB的增删改查

  1. 增

    db.tablename.insertOne({})      插入一条数据

    db.tablename.insertMany([{}, {}])    插入多条数据

  2. 删

    db.tablename.deleteOne({})      删除符合条件的第一条数据

    db.tablename.deleteMany({})       删除符合条件的所有数据

  3. 改

    db.tablename.updateOne({}, {"$set": {}})  修改符合第一个参数条件的第一条数据, 改为第二个参数内容

    db.tablename.updateMany({}, {"$set: {}"})  修改符合第一个参数条件的所有数据, 改为第二个参数内容

  4. 查

    db.tablename.findOne({})        查询符合条件的第一条数据

    db.tablename.find({})          查询符合条件的所有数据

三. MongoDB的数据类型 

  ObjectId :Documents 自动生成的 _id

  _id:ObjectId("5cb69a23815ea7295f8bad43") 自动生成的 json数据中不包含ObjectId类型 id类型uuid

  String: 字符串,必须是utf-8

  Boolean: 布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)

  Integer: 整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)

  Double: 浮点数 (没有float类型,所有小数都是Double)

  Arrays: 数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)

  Object: 深度<=4 如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典

  Null: 空数据类型 , 一个特殊的概念,None Null

  Timestamp: 时间戳 通常不用这个数据类型 如果存储时间 Double

  Date: 存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

四. MongoDB的$关键字

  1. 数学比较符(gt, lt, ne...)

    db.tablename.find({"age" : {"$gt": 50}})    年龄大于50的

  2. 查询关键字(in, or, and, all)

    db.tablename.find({"age": {"$in": [10, 20]}})        年龄为10或者20的

    db.tablename.find({"$or": [{"age": 10}, {"name": "xxx"}]})  年龄为10或者名字为xxx的

    db.tablename.find({"hobby": {"$all": ["x", "xx"]}})      查询子集

  3. $关键字的特殊用法

    db.tablename.updateOne({hobby:"娟儿"},{$set:{"hobby.$":"小圈儿"}})  存储符合条件元素的下标索引

五. 修改器 

$set    -  强制替换覆盖

  {$set:{name:123}}

$unset   - 强制删除字段

  {$unset:{name:1}}

$inc     - 引用增加, 原有数值基础上增加 1

  {$inc:{age:1}}

 

$push append 在array中追加

  db.users.update({name:"AlexDSB"},{$push:{hobby:"特斯垃圾"}})

$pushAll extend 在array中追加列表中的所有元素

  db.users.update({name:"AlexDSB"},{$pushAll:{hobby:["22寸轮毂","V8","欧林斯"]}})

$pull remove 在array中删除一个元素

  db.users.update({name:"AlexDSB"},{$pull: {hobby:"V8"}})

$pullAll 在array中删除一堆元素

  db.users.update({name:"AlexDSB"},{$pullAll: {hobby:["小敏","芙蓉姐姐"]}})

$pop pop 删除第一个 -1 或最后一个 1 的值

  db.users.update({name:"AlexDSB"},{$pop: {hobby:1}})

六. 查询结果的显示

  1. sort排序

    db.tablename.find().sort({"_id": -1})

  2. skip跳过, 跳过几条数据再显示

    db.tablename.find().skip(num)

  3. limit限制, 限制几条数据

    db.tablename.find().limit(num)

  4. 优先级,分页

    先排序, 再跳过, 最后限制

    db.tablename.find({}).sotr(_id:-1).limit(num).skip((page-1)*num)

七. pymongo模块的使用

  1. 导入模块

    from pymongo import MongoClient

  2. 创建一个客户端对象

    mc = MongoClient()    # 默认host=localhost, port=27017

  3. 指定库

    db = mc["databasename"]

  4. 操作库

    db.tablename.find()

上一篇:C输出大于127的ACSII字符


下一篇:SQL笔记