mongodb游标快照
2015-10-03 22:49
513 查看
![](http://images2015.cnblogs.com/blog/95825/201510/95825-20151003224306011-2131080699.png)
![](http://images2015.cnblogs.com/blog/95825/201510/95825-20151003224428527-326044173.png)
![](http://images2015.cnblogs.com/blog/95825/201510/95825-20151003224503886-1545889109.png)
![](http://images2015.cnblogs.com/blog/95825/201510/95825-20151003224836402-333415743.png)
示例代码
1. 初始数据
> db.snapshot_test.find() { "_id" : ObjectId("560ba37c694895b2de42254d"), "name" : "lxy" } { "_id" : ObjectId("560ba381694895b2de42254e"), "name" : "zyh" } { "_id" : ObjectId("560ba38a694895b2de422550"), "name" : "zjj" } { "_id" : ObjectId("560feb75f31b120ca7308011"), "name" : "yhl" }
2. 给name=zjj的行添加age字段,增加行占用的空间
> db.snapshot_test.update({name:"zjj"},{$set:{name:"zjj",age:10}})
3. 返回查询
> db.snapshot_test.find() { "_id" : ObjectId("560ba37c694895b2de42254d"), "name" : "lxy" } { "_id" : ObjectId("560ba381694895b2de42254e"), "name" : "zyh" } { "_id" : ObjectId("560feb75f31b120ca7308011"), "name" : "yhl" } { "_id" : ObjectId("560ba38a694895b2de422550"), "name" : "zjj", "age" : 10 }
因为第三行的占用空间增大,mongdb会重新给第三条记录分配内存空间,并添加到集合的尾部
4. 快照查询结果
> db.snapshot_test.find().snapshot() { "_id" : ObjectId("560ba37c694895b2de42254d"), "name" : "lxy" } { "_id" : ObjectId("560ba381694895b2de42254e"), "name" : "zyh" } { "_id" : ObjectId("560ba38a694895b2de422550"), "name" : "zjj", "age" : 10 } { "_id" : ObjectId("560feb75f31b120ca7308011"), "name" : "yhl" }
从返回的结果可以看出,第三行记录的顺序变回和修改空间大小之前的位置
相关文章推荐
- 面对 MongoDB 3.x ,用什么C++ driver
- Ubuntu 15.04 安装 MongoDB 3.x
- mongodb 批量更新 数组的键操作的文件
- MongoDB梳理
- mongodb写入安全级别
- 利用DBREF实现MongoDB的引用("外键")
- Fast paging with MongoDB
- mongodb中如何创建数据库
- MongoDB聚合整理
- MongoDB 数据模型设计
- Linux下Mongodb安装和启动配置
- DoraCMS 基于Nodejs+express+mongodb 内容管理系统
- mongodb基本指令
- 【mongoDB运维篇②】备份与恢复(导入与导出)
- mongodb(5)-分片集群
- MongoDb(4)
- 定时任务知多少(二)——持久化quartz到Mongodb中
- MongoDB培训
- MongoDB数据库建立连接
- 【mongoDB运维篇①】用户管理