MongoDB基础语法(笔记)

MongoDB语法:

好记性不如烂笔头,先记下咯

选择和创建数据库
  • show dbs;//查看所有的数据库
  • db;//查看当前窗口所在的数据库
  • use 数据库名;//如果数据库不存在,则创建数据库,否则切换到指定数据库。
  • 注:show dbs执行结果没有看到test库,但是db查看当前库确是test库,因为test库中刚开始没有任何数据并且是在内存中的,有了数据后就会显示出来了(其他新创建的数据库也是如此)
  • db.dropDatabase();//删除当前数据库,默认为 test,故要切换到某个数据库下进行删除
插入和查询文档
  • 插入文档的语法格式:

    db.集合名称.insert({BSON格式的数据})

  • 查询集合的语法格式:

    db.集合名称.find()

  • 查询用户id是233的数据

    db.集合名称.find({userId: ‘233’})

  • 只查询一条

    db.集合名称.findOne({userId: ‘233’})

  • 返回指定条数的记录

    db.集合名称.find().limit(3)

修改和删除文档
  • 修改文档的语法结构:

    Db.集合名称.update(条件,修改后的数据)

  • 如果我们想修改_id为1的记录,名称为张三,输入以下语句:_

    Db.集合名称.update({_Id:ObjectId(1)}, {name:’张三’})

  • 执行后,我们会发现,这条文档除了name字段其它段都不见了,为了解决这个问题, 我们需要使用修改器$set来实现,命令如下:

    Db.集合名称.update({_Id:1}, {$set:{name:’张三’}})

  • 删除文档的语法结构:

    Db.集合名称.remove(条件)

  • 以下语句可以将数据全部删除,请慎用

    Db.集合名称.remove({})

统计条数

统计记录条件使用count()方法:

​ Db.集合名称.count()

​ Db.集合名称.count(条件)

模糊查询

MongoDB的模糊查询是通过正则表达式的方式实现的。格式为: /字符串/

  • 比如标题中包含java的帖子

    Db.集合名称.find(title:/java/)

  • 比如查询以“张”开头的名字

    Db.集合名称.find(name: /^张/)

大于 小于 不等于 包含 不包含

大于: g t , 小 于 gt,小于 gtlt,大于等于 g t e , 小 于 等 于 gte,小于等于 gtelte,不等于 n e , 包 含 ne,包含 nein,不包含$nin

  • 查询阅读数大于10的帖子

    Db.集合名称.find({readNum:{$gt:10}})

  • 查询评论集合中userid字段不包含1013和1014的文档

    Db.集合名称.find({userId: {$nin:[‘1013’, ‘1014’]}})

条件查询
  • 我们如果需要查询同时满足两个以上条件,需要使用$and操作符将条件进行关联。

格式为: $and:[ { },{ },{ } ]

  • 示例:查询帖子集合中readNum大于等于1000 并且小于2000的文档

    Db.集合名称.find( {KaTeX parse error: Expected '}', got 'EOF' at end of input: …d: [ {readNum:{gte:1000}}, {readNum:{$lte: 2000}} ]} )

  • 如果两个以上条件之间是或者的关系,我们使用 o r 用 法 和 a n d 相 同 : or 用法和and相同: orandor:[ { },{ },{ } ]

  • 列值增长

    如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用$inc运算符来实现

    Db.集合名称.update({_id:1}, {$inc:{readNum:NumberInt(2)}})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值