代码之家  ›  专栏  ›  技术社区  ›  Justin Dearing

mongodb shell的安全写入

  •  3
  • Justin Dearing  · 技术社区  · 14 年前

    如何实现从javascript立即刷新到磁盘的“安全”写入?我希望能够从shell和存储的javascript“CRUD”过程中做到这一点。只是一个问题:

    db.foo.insert({stuff: "yes", meta: "physics"});
    db.runCommand( "getlasterror" ) ;
    

    维基对此并不清楚。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Thilo    14 年前

    是的,你会用 Last Error command ,但需要设置fsync标志(和/或 replication parameter

    # force fsync
    > db.runCommand({getlasterror:1,fsync:true})
    
    # wait for replication to one other server (w = 2)
    > db.runCommand( { getlasterror : 1 , w : 2 } )
    

    如果要执行多个写操作,可以在最后一个写操作之后请求fsync或复制。这将使所有以前的写入也“安全”(因为它们是按顺序应用的)。您不必为每一次写入支付费用(除非您需要它们单独安全,而不仅仅是作为一个集合)。