文档型数据库MongoDB常用命令
MongoDB
文章目录
- MongoDB
- 配置MongoDB环境变量
- MongoDB与MySQL数据库逻辑结构概念的对比
- 常用命令
- 选择和创建数据库
- 插入与查询文档
- 修改文档
- 删除文档
- 统计条数
- 模糊查询
- 大于 小于 不等于
- 包含与不包含
- 条件连接
- 列值增长
配置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)}} )
还没有评论,来说两句吧...