2012-05-30 24 views
-1

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

2,是否有设置修饰符的限制? 如果我使用
collection.update({ “通知”: “是”},{ “$集”: {“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}})
它的工作。
为什么?

+0

这显然是一个RTFM提问和pymongo API文档明确回答 - downvote –

回答

1

1)您可以使用write关键字参数来确保调用​​。

  • 安全:各种方法如下所述使用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 
} 
 
3

这为我工作

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