文档型数据库MongoDB常用命令

MongoDB

配置MongoDB环境变量

在环境变量path中配置MongoDB安装路径
D:\Program Files\MongoDB\Server\3.2\bin
因为我安装到了这个目录了
温馨提示:MongoDB默认端口27017

MongoDB与MySQL数据库逻辑结构概念的对比
MongoDb关系型数据库Mysql
数据库(databases)数据库(databases)
集合(collections)表(table)
文档(document)行(row)
常用命令
选择和创建数据库

选择和创建数据库的语法格式:
use 数据库名称;
例如:use mongodb
tip : 如果数据库不存在则自动创建

插入与查询文档

1、插入文档的语法格式:
db.集合名称.insert(数据);
例如: db.student.insert({sname:“goblin”,age:NumberInt(“28”),address:“China”})
2、查询集合的语法格式:
db.集合名称.find()
例如: db.student.find()
{ “_id” : ObjectId(“604b7301290d5ee3139eee8b”), “sname” : “goblin”, “age” : 28, “address” : “China” }
再插入一条数据:
db.student.insert({sname:“goblinGhost”,age:NumberInt(“28”),address:“China Of Beijing”})

扩展1:
按条件查询: db.集合名称.find(条件)
例如: db.student.find({sname:"goblinGhost"})
{ "_id" : ObjectId("604b73d3290d5ee3139eee8c"), "sname" : "goblinGhost", "age" : 28, "address" : "China Of Beijing" }
扩展2:
返回指定条数的记录:db.集合名称.find().limit(2);
例如: db.student.find().limit(1)
{ "_id" : ObjectId("604b7301290d5ee3139eee8b"), "sname" : "goblin", "age" : 28, "address" : "China" }
修改文档

修改文档的语法结构:
db.集合名称.update(条件,修改后的数据)
例如: db.student.update({sname:“goblinGhost”},{age:NumberInt(“18”)})
WriteResult({ “nMatched” : 1, “nUpserted” : 0, “nModified” : 1 })
查询文档,查看修改后的数据
例如: db.student.find()
{ “_id” : ObjectId(“604b7301290d5ee3139eee8b”), “sname” : “goblin”, “age” : 28, “address” : “China” }
{ “_id” : ObjectId(“604b73d3290d5ee3139eee8c”), “age” : 18 }
tip: 数据虽然修改成功了,但是,其他字段没有了

再插入一条数据,本次指定了_id字段
db.student.insert({_id:“3”,sname:“goblinGhost”,age:NumberInt(“18”),address:“China Of Beijing”})
再次查询:
db.student.find()
{ “_id” : ObjectId(“604b7301290d5ee3139eee8b”), “sname” : “goblin”, “age” : 28, “address” : “China” }
{ “_id” : ObjectId(“604b73d3290d5ee3139eee8c”), “age” : 18 }
{ “_id” : “3”, “sname” : “goblinGhost”, “age” : 18, “address” : “China Of Beijing” }

为了不让文档其他字段不受影响,使用修改器KaTeX parse error: Expected '}', got 'EOF' at end of input: …称.update({条件},{set:{修改后的数据}})
例如 : db.student.update({_id:“3”},{$set:{address:“China Of Beijing Road 110”}})
再次执行 : db.student.find()
{ “_id” : ObjectId(“604b7301290d5ee3139eee8b”), “sname” : “goblin”, “age” : 28, “address” : “China” }
{ “_id” : ObjectId(“604b73d3290d5ee3139eee8c”), “age” : 18 }
{ “_id” : “3”, “sname” : “goblinGhost”, “age” : 18, “address” : “China Of Beijing Road 110” }

删除文档

删除文档的语法结构:
db.集合名称.remove(条件)
例如: db.student.remove({age:NumberInt(“18”)})
将数据全部删除:
db.student.remove({}) #慎用;搞不好得跑路

统计条数

统计条数语法结构:
db.集合名称.count()
例如: db.student.count()
按条件统计条数语法结构:
db.集合名称.count(条件)
例如: db.student.count({age:NumberInt(“28”)})

模糊查询

模糊查询是通过正则表达式的方式实现的。格式为:
/模糊查询字符串/
具体格式: db.集合名称.find(条件)
例如: db.student.find({sname:/goblin/})
{ “_id” : ObjectId(“604b7301290d5ee3139eee8b”), “sname” : “goblin”, “age” : 28, “address” : “China” }
{ “_id” : “3”, “sname” : “goblinGhost”, “age” : 20, “address” : “China Of Beijing Road 110” }
tip: 条件中不要加双引号哦

扩展:
查询已什么开头的数据
格式: db.集合名称.find(条件)
例如: db.student.find({sname:/^goblin/})
{ "_id" : ObjectId("604b7301290d5ee3139eee8b"), "sname" : "goblin", "age" : 28, "address" : "China" }
{ "_id" : "3", "sname" : "goblinGhost", "age" : 20, "address" : "China Of Beijing Road 110" }
大于 小于 不等于

<, <=, >, >= 这个操作符也是很常用的,格式如下:
db.集合名称.find({ “field” : { $gt: value }}) // 大于: field > value
db.集合名称.find({ “field” : { $lt: value }}) // 小于: field < value
db.集合名称.find({ “field” : { $gte: value }}) // 大于等于: field >= value
db.集合名称.find({ “field” : { $lte: value }}) // 小于等于: field <= value
db.集合名称.find({ “field” : { $ne: value }}) // 不等于: field != value

例如: db.student.find({age:{$lt:30}})


db.student.find({age:{$gt:NumberInt(“10”)}})

包含与不包含

包含格式:
db.集合名称.find({“field”:{$in:[“value1”,“value2”]}})

不包含格式:
db.集合名称.find({“field”:{$nin:[“value1”,“value2”]}})

条件连接

条件连接(类似于SQL中的 AND)格式为:
KaTeX parse error: Expected '}', got 'EOF' at end of input: … db.集合名称.find({and:[ {“field”:{KaTeX parse error: Expected 'EOF', got '}' at position 9: gte:1000}̲} ,{"field":{lt:2000} }]})
KaTeX parse error: Expected '}', got 'EOF' at end of input: … db.集合名称.find({or:[ {“field”:{KaTeX parse error: Expected 'EOF', got '}' at position 9: gte:1000}̲} ,{"field":{lt:2000} }]})

列值增长

如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用KaTeX parse error: Expected '}', got 'EOF' at end of input: …ate({_id:"2"},{inc:{“field”:NumberInt(1)}} )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值