Shell环境下Mongodb的简单crud
2017-04-10 00:00
309 查看
摘要: Shell下Mongodb的增删改查
首先, 连接到mongodb服务器后, Shell环境下 use mongo 切换到数据库mongo.
接下来, 开搞吧!
一. 增: INSERT
新增一个文档, 在shell中, 可以先把要新增的文档对象创建出来
> apple = { "name" : "apple", "color" : "red" }
> db.fruit.insert(apple)
这样,便成功地向fruit集合中插入了一个文档
![](https://static.oschina.net/uploads/space/2017/0410/002008_XXBF_1591393.png)
成功插入后, fruit 集合中便多出来一个文档. 如图:
![](https://static.oschina.net/uploads/space/2017/0410/002056_YGPb_1591393.png)
二. 删 DELETE
当前 math 集合中 存在一个文档, 即 { "_id" : ObjectId("58ea364264c6947a118a843d"), "count" : 25 }
要删除这个文档, 得使用remove() 函数. remove() 函数接受两个参数, 第一个参数表示 要删除的文档对象, 第二个参数表示是否将匹配到的所有文档一并删除, 默认只删除匹配到的第一条.
![](https://static.oschina.net/uploads/space/2017/0410/002248_NOCP_1591393.png)
删除之后再次查询math集合, 便只返回null了.
三. 改 UPDATE
修改文档使用 update() 函数, update()函数接受四个参数, 第一个参数是一个查询, 根据这个参数从集合中查找符合条件的对象, 第二个参数表示修改过后的文档, 第三个参数 upsert, 表示如果按查询匹配到相应的对象, 那么就用第二个参数 新建一个文档, 最后一个参数指明是否全部更新匹配到的文档.
1. 给指定文档新增属性.
使用上面提到的fruit集合, 首先可以先找出要进行更新的文档,
> var apple = db.fruit.findOne({"color" : "red"})
>apple.weight = 100
>db.fruit.update({"color": "red"}, apple, false, false);
现在,重新查询一下:
>db.fruit.findOne({"color":"red"})
![](https://static.oschina.net/uploads/space/2017/0410/002319_NbhZ_1591393.png)
2. 修改指定文档的属性值
比如要修改上面的 "_id" 为 ObjectId("58ea536c64c6947a118a843e") 的文档, 将其 color 属性的值改为 "green",
利用上边查询的apple对象, apple.color = "green", 接着 db.fruit.update({"color:red", apple}) 便可以了. 具体如下:
![](https://static.oschina.net/uploads/space/2017/0410/002351_fYFW_1591393.png)
看看修改后的效果:
![](https://static.oschina.net/uploads/space/2017/0410/002408_aPjP_1591393.png)
3. 除此之外,还可以利用各种修改器更新文档的属性, 篇幅有限, 这part下次再写了, 困了....
四. 查 RETRIEVE
上文其实已经提到了查询文档常用的两个方法, findOne() 和 find() , findOne() 函数返回集合中匹配查询条件的第一个文档, find() 函数则返回所有的文档.
下边是find() 函数的 源代码:
function ( query , fields , limit , skip, batchSize, options ){
var cursor = new DBQuery( this._mongo , this._db , this ,
this._fullName , this._massageObject( query ) , fields , limit , skip , batchSize , options || this.getQueryOptions() );
var connObj = this.getMongo();
var readPrefMode = connObj.getReadPrefMode();
if (readPrefMode != null) {
cursor.readPref(readPrefMode, connObj.getReadPrefTagSet());
}
return cursor;
}
由源代码可以看出, find函数功能强大, 更多关于查找文档的内容, 后边将会单独写篇文章来介绍.
这里只做简单介绍, find函数第一个参数表示一个查询条件, 因此你便可以使用 db.fruit.find({"color": "red"}) 来找出fruit集合中所有表示红色苹果的文档.
时候不早,就此歇笔, 晚安.
首先, 连接到mongodb服务器后, Shell环境下 use mongo 切换到数据库mongo.
接下来, 开搞吧!
一. 增: INSERT
新增一个文档, 在shell中, 可以先把要新增的文档对象创建出来
> apple = { "name" : "apple", "color" : "red" }
> db.fruit.insert(apple)
这样,便成功地向fruit集合中插入了一个文档
![](https://static.oschina.net/uploads/space/2017/0410/002008_XXBF_1591393.png)
成功插入后, fruit 集合中便多出来一个文档. 如图:
![](https://static.oschina.net/uploads/space/2017/0410/002056_YGPb_1591393.png)
二. 删 DELETE
当前 math 集合中 存在一个文档, 即 { "_id" : ObjectId("58ea364264c6947a118a843d"), "count" : 25 }
要删除这个文档, 得使用remove() 函数. remove() 函数接受两个参数, 第一个参数表示 要删除的文档对象, 第二个参数表示是否将匹配到的所有文档一并删除, 默认只删除匹配到的第一条.
![](https://static.oschina.net/uploads/space/2017/0410/002248_NOCP_1591393.png)
删除之后再次查询math集合, 便只返回null了.
三. 改 UPDATE
修改文档使用 update() 函数, update()函数接受四个参数, 第一个参数是一个查询, 根据这个参数从集合中查找符合条件的对象, 第二个参数表示修改过后的文档, 第三个参数 upsert, 表示如果按查询匹配到相应的对象, 那么就用第二个参数 新建一个文档, 最后一个参数指明是否全部更新匹配到的文档.
1. 给指定文档新增属性.
使用上面提到的fruit集合, 首先可以先找出要进行更新的文档,
> var apple = db.fruit.findOne({"color" : "red"})
>apple.weight = 100
>db.fruit.update({"color": "red"}, apple, false, false);
现在,重新查询一下:
>db.fruit.findOne({"color":"red"})
![](https://static.oschina.net/uploads/space/2017/0410/002319_NbhZ_1591393.png)
2. 修改指定文档的属性值
比如要修改上面的 "_id" 为 ObjectId("58ea536c64c6947a118a843e") 的文档, 将其 color 属性的值改为 "green",
利用上边查询的apple对象, apple.color = "green", 接着 db.fruit.update({"color:red", apple}) 便可以了. 具体如下:
![](https://static.oschina.net/uploads/space/2017/0410/002351_fYFW_1591393.png)
看看修改后的效果:
![](https://static.oschina.net/uploads/space/2017/0410/002408_aPjP_1591393.png)
3. 除此之外,还可以利用各种修改器更新文档的属性, 篇幅有限, 这part下次再写了, 困了....
四. 查 RETRIEVE
上文其实已经提到了查询文档常用的两个方法, findOne() 和 find() , findOne() 函数返回集合中匹配查询条件的第一个文档, find() 函数则返回所有的文档.
下边是find() 函数的 源代码:
function ( query , fields , limit , skip, batchSize, options ){
var cursor = new DBQuery( this._mongo , this._db , this ,
this._fullName , this._massageObject( query ) , fields , limit , skip , batchSize , options || this.getQueryOptions() );
var connObj = this.getMongo();
var readPrefMode = connObj.getReadPrefMode();
if (readPrefMode != null) {
cursor.readPref(readPrefMode, connObj.getReadPrefTagSet());
}
return cursor;
}
由源代码可以看出, find函数功能强大, 更多关于查找文档的内容, 后边将会单独写篇文章来介绍.
这里只做简单介绍, find函数第一个参数表示一个查询条件, 因此你便可以使用 db.fruit.find({"color": "red"}) 来找出fruit集合中所有表示红色苹果的文档.
时候不早,就此歇笔, 晚安.
相关文章推荐
- Spring Data 与MongoDB 集成一:入门篇(开发环境搭建和简单CRUD)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data 与MongoDB 集成一:入门篇(开发环境搭建和简单CRUD)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data 与MongoDB 集成一:入门篇(开发环境搭建和简单CRUD)
- MongoDB学习笔记:(3)、mongodb 3.2在java环境中的简单CRUD
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
- mongodb学习4-简单的CRUD
- mongodb之简单的CRUD
- OS之子进程简单模拟shell解释环境
- shell脚本程序中的部分常用环境变量和参数变量的说明以及简单shell脚本示例
- spring集成mongodb封装的简单的CRUD
- MongoDB使用学习(二)-shell命令以及CRUD操作
- MongoDB的使用学习之(五)Spring集成MongoDB以及简单的CRUD
- MongoDB 学习笔记(一):安装及简单shell操作
- java环境下:MongoDB的crud操作之Update (二)
- 在Windows环境下MongoDB搭建和简单操作