MongoDB教程(部分的,可能不全,我是一名初学者,实习生)
1,
–创建数据库
A:
use database_name (创建数据库)
B:
db (可查看创建的数据库,show dbs可参看全部的数据库)
C:
db.database_name.insert({“字段名”:“值”})
D:
show dbs (即可查看到刚刚创建的数据库的值,因为刚刚创建的数据库是没有值是无法显示的)
注意:在mongodb中默认的数据为test如果没有创建新的数据库,值默认保存在test数据库中
2,
–删除数据库
A:
show dbs (查看所有数据库)
B:
use databaseName (进入该数据库)
C:
db.dropDatabase() (即可删除该数据库)
3,
–创建集合(类似于表)
A:
use database_name (进入database_name数据库)
B:
show collections 或者show tables 命令可以查看已有集合
C:
db.createCollection(“集合名称”,{参数})
4,
–删除集合(即删除该数据库下面的表结构)
A:
use database_name (进入该数据库)
B:
show collections (查看)
C:
db.collection_name.drop() (即可删除)
5,
–插入文档
A:
use database_name (进入该数据库)
B:
show collections (查看)
C:
db.collection_name.insert({ 字段 :’ 内容’ , 字段2:‘内容2’ })
或者定义一个变量存放数据
value_name=({ 字段 :’ 内容’ , 字段2:‘内容2’ })
db.collection_name.insert(value_name)
6:
– 一次插入多条数据
var arr = []; (定义一个语句)
for(var i=1 ; i<=20 ; i++){
arr.push({num:i});
}
db.collection_name.insert(arr);
7:
– 删除文档
A:
db.collection_name.deleteMany({}) (删除集合下的全部文档)
B:
db.collection_name.deleteOne({status:“A”}) (删除status等于A的一个文档) 列如 db.col.deleteOne({title:“高等数学”}) 删除一个title为高等数学的数据
C:
db.collection_name.deleteMany({status:“A”}) (删除status等于A的全部文档)
8:
– 查询文档
A:
db.collection_name.find().pretty()
B: (MongoDB与RDBMS where语句比较)
等于 db.collection_name.find({“title”:“菜鸟教程”}) 类似于RDMS中的类似语句 where title=‘菜鸟教程’
大于 db.collection_name.find({“title”:{KaTeX parse error: Expected 'EOF', got '}' at position 6: lt:50}̲}) 类似于RDM…gt:50}}) 类似于 where title< 50; gte小于等于
C: (mongoDB的OR条件)
db.collection_name.find({$or:[{key1:value1},{key2:value2}]})
D: (mongoDB的or条件 ,and条件)
db.collection_name.find(“key1”:“value1”,$or[{‘key2’:‘value2’},{‘key3’:‘value3’}])
9:
– mongoDB 条件操作符
– A: 常用的操作符有大致四种,如下
KaTeX parse error: Expected '}', got 'EOF' at end of input: …find({"key1" :{gt : value1}})
$gte 大于等于
$lt 小于
$lte 小于等于
db.collection_name.deleteMany({}) – 删除所有数据
– B: mongoDB 使用(< )和 (>) -
l
t
和
lt 和
lt和gt
db.collection_name.find()
10:
–mongodb 的limit和skip语法
–A limit语法如下
db.collection_name.find({}).limit(NUMBER)
列如:db.col.find({},{“title”: 1, “_id”:0}).limit(2) “title”:1 ,表示显示,"_id":0 表示隐藏 ,限制了两个
– B skip()方法
db.col.find({},{“title”: 1, “_id”:0}).limit(2).skip(1) 跳过第一个title显示第二个
11:
– mongodb的排序
db.collection_name.find({}).sort(“key”:-1or1) -1表示倒序,1表示正序
12:
–mongodb的索引 createIndex()方法
A:语法格式如下所示:
db.collection_name.createIndex(keys,options) – key值为你要创建的索引字段,options 为1 升序创建索引,-1为降序创建索引
B:查看集合索引
db.collection_name.getIndexes()
C:查看集合索引大小
db.collection_name.totalIndexSize()
D:删除集合所有索引
db.col_name.dropIndex()
E:删除集合指定索引
db.co_name.dropIndex(“索引名称”)
13: mongodb 聚合
A:语法
db.cmy.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"length",likes:{$max:“likes”}}}]) – 分组排序,按照length排序,查看各length中likes的最大值
B:管道的概念(一般用于将当前命令的输出作为下一个命令的参数)
1,以project举例
db.cmy.aggregate({KaTeX parse error: Expected 'EOF', got '}' at position 27: …tle:1,author:1}}̲) 这样的话结果中就只有_id…project:{title:1,author:1}})
2,KaTeX parse error: Expected '}', got 'EOF' at end of input: …cmy.aggregate({skip:5})
db.cmy.aggregate({$skip:1}) --跳过cmy表单的第一条数据 ,类似于 db.cmy.find({}).skip(1)
14:
– mongodb 复制(副本集)
A:
复制作用: 提高了数据的可用性,保证数据安全
B: (mongodb的复制原理)
mongodb的复制至少需要两个节点。其中一个主节点(primary)是复制处理客户的请求,从节点(secondary)负责复制主节点的数据备份,所以数据是
同步的;
常见的搭配方式为:一主一从,一主多从 的搭配方式
采用db.isMaster()判断是否为主节点