2012-01-30 12 views
2

単純な更新を実行しようとしましたが、データはdb内で更新されません。次のコードスニペットで 、私は:pymongoの更新が機能していない

  1. はそれを更新
  2. 、それを取り出す(成功を)新しいアカウントを作成し、デシベル(成功)に挿入し、

を失敗するこれは、すべてのローカルホスト、デフォルトのインスタンス、無レプリカ関与で行われます。 私はドキュメンテーションを段階的に追ってきましたが、何が間違っているのか理解できません。

from pymongo import Connection 
from pymongo.objectid import ObjectId 

def _byid(id): 
    return ObjectId(id) 

class Account(object): 
    collection = Connection().testdb.accounts 

    def insert(self, data): 
     return self.collection.insert(data) 

    def byid(self, id): 
     return self.collection.find({"_id": _byid(id)}) 

    def update(self, id, data): 
     return self.collection.update({"_id": _byid(id)}, {"$set": data}) 

acc_data = { 
    "contact_name": "Mr. X", 
    "company_name": "Awesome Inc.", 
} 

account = Account() 

# INSERT 
_id = account.insert(acc_data) 
print 'ID:', _id 

# RETRIVE 
for ac in account.byid(_id):  
    print ac["company_name"] 

# UPDATE 
acc_data["company_name"] = acc_data["company_name"][::-1].upper() 
print account.update(_id, acc_data) 

# RETRIVE AGAIN 
for ac in account.byid(_id):  
    print ac["company_name"] 

答えて

3

これが表示されます。 更新は次のようになります。

def update(self, id, data): 
    return self.collection.update({"_id": _byid(id)}, data)  

"$set"

は必要ありません
関連する問題