• mongodb游标快照


    示例代码

    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" }

    从返回的结果可以看出,第三行记录的顺序变回和修改空间大小之前的位置

  • 相关阅读:
    经典SQL语句大全
    主键,外键,主键表,外间表
    一个不错的shell 脚本教程 入门级
    初窥Linux 之 我最常用的20条命令
    try catch finally 用法
    一个初学者对于MVC架构的理解
    第二次阶段冲刺2(6月1号)
    第二次阶段冲刺1(5月31号)
    学习进度条十三(第14周)
    学习进度条十二(第13周)
  • 原文地址:https://www.cnblogs.com/phpfans/p/4853966.html
Copyright © 2020-2023  润新知