MongoDB基本操作命令
工具:RoboMongoDB 1.0
特别说明:本文并非作者原创,文中内容来自于《NoSQL数据库原理与应用》(王爱国,许桂秋主编)书中的第五章!!!
注意,那些符号都是英文输入法输入!!!
1、use test //创建数据库,如果已经存在直接连接
(注意:对某个数据库操作之前,一定要用use切换至该数据库,否则出错)
2、show dbs //查看当前数据库列表
3、db.dropDatabase() //删除当前数据库
4、db.getCollectionNames() //查询当前数据库下所有集合
5、db.createCollection(“zhutou”) //创建集合(显式)
6、db.whj.insert({“name”:“tom”}) //创建集合(隐式),whj是我的集合名
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=({name:“张三”,age:18}) //document为变量名
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、
db.whj.deleteMany({}) //删除集合下所有文档
db.whj.deleteMany({status:“A”}) //删除status等于A的全部文档
db.whj.deleteOne({status:“A”}) //删除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是降序
如果上文中讲述有错误请包涵,实践出真知,请努力!