如何在pymongo中使用getLastError?

时间:2012-05-30 08:18:41

标签: mongodb pymongo getlasterror

1,如何通过python获取monogd中我的操作的返回值?我知道getLastError可以在javascript中使用。

2,设置modifer有限制吗? 如果我使用
     collection.update({“notification”:“yes”},{“$ set”: {“idx”:idx,“src_md5”:src_md5,“src_size”:src_size,“ src_time “:INT(src_time)},” $ addToSet“:
{ “server_list”:HOST_NAME}})

它不起作用。
但是当我使用
时     的 collection.update({ “通知”: “是”},{ “$组”:
{ “IDX”:IDX, “src_md5”:src_md5, “src_size”:src_size}, “$组”:
{ “src_time”:INT(src_time)}, “$ addToSet”:{ “server_list”:HOST_NAME}})
它奏效了。
 为什么呢?

2 个答案:

答案 0 :(得分:3)

这对我有用

last_error = db.runCommand({"getLastError":1})

答案 1 :(得分:1)

1)您可以使用写关注关键字参数,以确保调用getLastError。各种方法描述如下:

  • 安全:每次写操作都使用getlasterror吗?
  • j 日记:阻止,直到写入操作已提交到日记。如果服务器正在运行而没有日记,则忽略。 意味着安全=真。
  • w :(整数或字符串)如果这是副本集,则写入操作在复制到指定的数字之前不会返回 或标记的服务器集。意味着安全=真。

您可以根据需要在不同级别设置这些写入问题:


2)你的查询看起来很好,这是一个测试:


db.test2.save({notification: 'yes'})
db.test2.update({"notification": "yes"}, {
    "$set": {"idx": 'a', "src_md5": 'b', "src_size": 'c', "src_time": 1}, 
    "$addToSet": {"server_list": 'stackoverflow'}
})
db.test2.find()


{
    "_id" : ObjectId("4fc5decf0631996582479878"),
    "idx" : "a",
    "notification" : "yes",
    "server_list" : [
        "stackoverflow"
    ],
    "src_md5" : "b",
    "src_size" : "c",
    "src_time" : 1
}