MongoDB基本操作命令
工具:RoboMongoDB 1.0
特别说明:本文并非作者原创,文中内容来自于《NoSQL数据库原理与应用》(王爱国,许桂秋主编)书中的第五章!!!
注意,那些符号都是英文输入法输入!!!
基本操作
1、创建数据库,如果已经存在直接连接
(注意:对某个数据库操作之前,一定要用use切换至该数据库,否则出错)
use test
2、查看当前数据库列表
show dbs
3、删除当前数据库
db.dropDatabase()
4、查询当前数据库下所有集合
db.getCollectionNames()
5、创建集合(显式)
db.createCollection("zhutou")
6、创建集合(隐式),whj 是我的集合名
db.whj.insert({"name":"tom"})
7、查看集合详细信息
show collections
8、对集合进行重命名
db.zhutou.renameCollection("dazhutou")
9、删除集合
db.dazhutou.drop()
(db为数据库名,可直接用db表示当前数据库,collection为集合名,insert为插入文档命令,三者之间用“.”连接。(db.collection.insert))
插入
10、插入文档
db.whj.insert({item:"ccc",age:15})
11、查询集合中的数据,每次操作完数据后用此命令查看
db.whj.find()
12、用变量方式插入文档
document为变量名
document=({name:"张三",age:18})
db.whj.insert(document)
此方式较高MongoDB版本才可实现,低版本报错无法运行
一般操作较多用直接插入文档,不用变量方式插入文档
13、插入多条文档需要用到 [ ] ,文档用花括号包起来,文档之间用逗号隔开
注意,都是英文输入法输入
db.whj.insert(
[
{_id:11,item:"aa",age:20},
{_id:12,item:"aa",age:30},
{item:"aa",age:40}
//未指定_id,系统会为文档插入默认_id字段
]
)
14、插入文档
插入一条文档
db.collection.insertOne()
插入多条文档
db.collection.insertMany()
更新
15、更新操作
db.whj.update( // 更新操作
{
_id:11}, // 11是数字,不是字符串,不需要引号
{
$set:{age:21} // 修改age的20为21,
}
)
16、
colation特性允许MongoDB的用户根据不同的语言定制排序规则, 在Mongo DB中字符默认当作一个普通的二进制字符串来对比。而对于中文名称,通常有按拼音顺序排序的需求,这时就可以通过colation来实现。创建集合时,指定collation为zh,按name字段排序时, 则会按照collation指定的中文规则来排序, 代码如下:
db.createCollection("peason",{collation:{locale:"zh"}})
// 创建集合并指定语言
db.person.insert({name:"张三"})
db.person.insert({name:"李四"})
db.person.insert({name:"王五"})
db.person.find().sort({name:1})
// 查询集合中的数据
查询返回结果的顺序依次是 李四、王五、张三
17、更新还可以用save( )
db.person.save({_id:15,item:"aa"})
// 之前没有,此操作意义为插入
db.person.save({_id:15,item:"bb"})
// 把"aa"更新为"bb"
删除
18、删除操作
db.whj.insert(
{
title:"MongoDB",
price:69
}
) // 先连续插入此文档两次
db.whj.remove({title:"MongoDB"})
// 此操作会删除满足条件的文档两条
// 也就是刚刚插入的
19、条件删除
db.whj.remove({price:{$gt:15}})
// 可以设置比较条件,删除price大于15的文档
20、delete方法
db.whj.deleteMany({})
// 删除集合下所有文档
db.whj.deleteMany({status:"A"})
// 删除status等于A的全部文档
db.whj.deleteOne({status:"B"})
// 删除status等于B的一个文档
这种delete方法的官方推荐的
查询
21、查询操作
db.person.find()
// 查询person集合的文档
db.person.find().pretty()
此方法会比上面一种返回更为直观好看的数据,当然这是你在dos命令窗口的需要,在 Robomongo 这个软件上并无区别
db.person.find(query,projection)
// query是查询条件,projection是指定返回字段
db.person.findOne() //只返回一个文档
22、具体根据条件进行查询的操作不再细说,这里说一个操作符格式
重点在于理解,不要死记硬背
23、其他操作
db.person.find().limit(2)
// 限制查询次数,只返回最先匹配到的两个
db.person.find().skip(1)
// 略过指定个数文档
db.person.find().sort({"price":1})
// 对查询结果进行排序,1是升序,-1是降序
如果对你有帮助,麻烦大佬点个赞,感谢感谢!