MongoDB学习笔记(二)_常用增删改查命令

  1. 创建数据库:use testdb
  2. 创建集合
  • 固定集合:需要指定size。比如:

db.createCollection("mycol",{capped:true,autoIndexId:true,size:6142800,max:10000})

表示创建名为mycol的固定集合,以optionId作为索引,集合空间大小为6142800KB,最多存储10000个文档。

  • 直接插入数据,自动创建集合。

db.mycol.insert(name:"ljs_coding")

     3.查看集合:show collections

     4.删除集合:db.mycol.drop(),返回true表示删除成功

     5.插入文档:

  • 直接插入数据:db.mycol.insert({name:"wust",password:"zz",location:"wuhan"})
注意:3.2版本之后可用insertOne()和insertMany()方法,后者在[]中用逗号将不同文档进行分隔。
  • 先定义变量再插入:

document=({name:"wust",password:"zz",location:"wuhan"});

db.mycol.insert(document)

注意:此处定义有小括号有分号。

      6.更新文档:

  • update()方法

<query>相当于where,<update>相当于set,upsert控制无对应记录时是否插入,multi控制是否多条更新,false表示只更新符合条件的第一条记录。writeConcern控制抛出异常的级别。

比如:db.mycol.update({name:"wust"},{$set:{password:"hh"}},false,true)将所有name为"wust"的记录中password都改为"hh"。

db.mycol.update({name:"wust"},{$set:{password:"zz"}},true,true),由于此时已有name为"wust"的记录,所以不会增加,结果为将所有记录的password改为"zz"

db.mycol.update({name:"hust"},{$set:{password:"zz"}},true,true),由于此时没有name为"hust"的记录,所以新增一条。

注意:3.2版本之后提供updateOne()和updateMany()方法删除单条和多条

  • save()方法

用传入的文档替换已有的文档。

      7.删除文档:deleteOne()和deleteMany()

比如:db.mycol.deleteOne({name:"wust"})和db.mycol.deleteMany({name:"wust"})

      8.查看文档:findOne()和find()

  • find().pretty()以格式化数据返回所有文档,findOne()不包括该方法。
  • 条件操作符:$lt,$lte,$gt,$gte,$ne,根据英文缩写理解,不加以赘述。

比如:db.mycol.find({count:{$lt:10}}).pretty()格式化返回count<10的所有记录。

  • AND和OR

比如: db.mycol.find({password:"zz",$or:[{count:{$lt:0.0}},{count:{$gt:3.0}}]})返回的是password为"zz"且count<0或>3的所有记录。

注意:一定要检查大括号匹配,如果写成了{password:"zz"},{$or:[{count:{$lt:0.0}},{count:{$gt:3.0}}]}就不是一条查询语句了,查询出的是password为zz的所有记录,后面的限制条件失去作用,而且返回的也并非所有属性,测试时只返回了_Id。



上图也是同样的错误,所以识别成了projection,都是粗心的小错误,注意避免。

  • projection参数使用方法(限制返回哪些属性),下图来自菜鸟教程。
db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键
db.collection.find(query, {_id:0, title: 1, by: 1}) // 正确
querydb.collection.find({}, {title: 1})

最后一种是不指定查询条件的情况,需要指定projection。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值