示例代碼spa
1. 初始數據code
> 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字段,增長行佔用的空間blog
> 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會從新給第三條記錄分配內存空間,並添加到集合的尾部class
4. 快照查詢結果test
> 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" }
從返回的結果能夠看出,第三行記錄的順序變回和修改空間大小以前的位置date