mongodb遊標快照

 

 

 

示例代碼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

相關文章
相關標籤/搜索