MongoDB基本知识和操作扫盲!

MongoDB学习笔记—updating

json可以为我们描述多种关系:一对一、一对多、多对一和多对多

与js语法类似

创建记录会自动生成一条_id主键,唯一id,代表该Object,也可以声明为自定义的数据

{_id:"123"}

BSON和JSON

我们都知道Mongodb存储的是BSON格式数据,BSON格式数据以二进制格式存储,可以嵌套文档和数组,增加了数据类型,Date,相比JSON的字符串存储,因为是二进制存储,不需要序列化,可以直接网络传输

优点:

  • 轻量
  • 可遍历(不存储字符串,可直接通过索引获取
  • 高效(无需序列化)
  • 增加了额外的数据类型

缺点:

  • 空间消耗多(一个整数BSON 4字节,JSON 1字节)

下面是JSON:

  "_id": 1,
  "name" : { "first" : "John", "last" : "Backus" },
  "contribs" : [ "Fortran", "ALGOL", "Backus-Naur Form", "FP" ],
  "awards" : [
    {
      "award" : "W.W. McDowell Award",
      "year" : 1967,
      "by" : "IEEE Computer Society"
    }, {
      "award" : "Draper Prize",
      "year" : 1993,
      "by" : "National Academy of Engineering"
    }
  ]
}

下面两个是BSON

{
    title:"MongoDB",
    last_editor:"192.168.1.122",
    last_modified:new Date("27/06/2011"),
    body:"MongoDB introduction",
    categories:["Database","NoSQL","BSON"],
    revieved:false
}

{
    name:"lemo",
    age:"12",
    address:{
        city:"suzhou",
        country:"china",
        code:215000
    } ,
    scores:[
        {"name":"english","grade:3.0},
        {"name":"chinese","grade:2.0}
    ]
}

命令行

  • mongod 是用来连接到mongodb数据库服务器的,即服务器端。
  • mongo 是用来启动MongoDB shell的,是mongodb的命令行客户端。

常用操作

  • use db_name 切换db
  • show dbs 查看所有db
  • show collections 查看当前db所有collections
  • db 查看当前db

  • db.collection.insert 插入数据
  • db.collection.insertOne 插入一条数据
  • db.collection.insertMany 插入多条数据
db.people.insertOne(
   { user_id: "bcd001", age: 45, status: "A" }
)
等价:
INSERT INTO people(user_id,age,status) VALUES ("bcd001",45,"A")

  • db.collection.find() 查找
  • db.collection.findOne() 查看一个
  • db.collection.find().limit() 查找限制条数
  • db.collection.find().count() 返回找到数据条数
db.people.find(
    { status: "A" }
)
等价:SELECT * FROM people WHERE status = "A"

  • 投影

查询结果的显示哪些数据 select 投影字段 from collections

find({},{投影结果数据})

db.people.find(

{ },

{ userid: 1, status: 1, id: 0 }

)

等价:SELECT user_id, status FROM people

  • update() 替换 通过$set更换某一属性值
  • db.collection.updateOne() 更新符合条件第一条
  • db.collection.updateMany() 更新符合条件的所有
  • db.collection.replaceOne() 替换符合条件的一条(所有属性)

db.getCollection('user').update({name:"zfb"},{$set:{name:"dx",age:"12"}})

  • unset删除一个属性
  • db.collection.remove({})全删除(一个一个) 应该使用db.collections.drop(),直接删除,效率更高
  • db.collection.remove() 一个或者多个,通过设置第二个参数为true则删除一个
  • db.collection.deleteOne() 删除一条符合条件
  • db.collection. deleteMany() 删除所有符合条件
  • db.dropDatabase() 删除db,谨慎使用

db.getCollection('user').remove({name:"wgy"},true)

过滤器

  • $lt 少于
db.people.find(
   { age: { $lt: 25 } }
)
等价:
SELECT * FROM people WHERE age < 25

  • $gt 大于
db.people.find(
   { age: { $gt: 25 } }
)
等价:
SELECT * FROM people WHERE age > 25

  • $lte less than equal 小于等于
db.people.find(
   { age: { $gt: 25, $lte: 50 } }
)
等价:
SELECT * FROM people WHERE age > 25 AND   age <= 50

  • $regex /关键字/ 模糊查询
db.people.find( { user_id: /bc/ } )
等价:
db.people.find( { user_id: { $regex: /bc/ } } )
等价:
SELECT * FROM people WHERE user_id like "
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值