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: /^张/)

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

大于:cfg mongodb 语法错 mongodb语法详解_创建数据库lt,大于等于cfg mongodb 语法错 mongodb语法详解_cfg mongodb 语法错_02lte,不等于cfg mongodb 语法错 mongodb语法详解_数据_03in,不包含$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}} ]} )
  • 如果两个以上条件之间是或者的关系,我们使用cfg mongodb 语法错 mongodb语法详解_mongodb_04or:[ { },{ },{ } ]
  • 列值增长
    如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用$inc运算符来实现
    Db.集合名称.update({_id:1}, {$inc:{readNum:NumberInt(2)}})