2011-10-12 52 views
0

考慮下面的一行四個屬性:如何將第一個集合的_id分裂一行到不同的集合,每個店作爲參考

{ att1 : "att1", att2 : "att2", att3 : "att3", att4 : "att4"} 

我想此行存儲到MongoDB中兩個集合。 collectionA的_id將被用作關係數據庫中的外鍵。

如何在pongongo中有效地在MongoDB中實現?

collectionA 
{ 
    "att1" : "att1" 
    "att2" : "att2" 
    "_id" : ObjectID("4e95e41a1d41c823d5000001") 
} 
collectionB 
{ 
    "att3" : "att3" 
    "att4" : "att4" 
    "ref_id" : ObjectID("4e95e41a1d41c823d5000001") 
    "_id" : ObjectId("4e95f81587ebf9f190c3cc4e") 
} 

我看到有一個solution在此處張貼的是JavaScript。但是,每次我們必須先將文檔插入到collectionA中,然後查詢剛插入的文檔的_id以進一步操作。有沒有更好的辦法?

回答

1

司機實際上是負責生成的ObjectId值,所以它是相當簡單的(下面我假設你的數據庫存儲在Python變量「DB」):

import bson 

myrow = { att1 : "att1", att2 : "att2", att3 : "att3", att4 : "att4"} 

ref_id = bson.ObjectId() 
db.collectionA.insert({att1:myrow['att1'], att2:myrow['att2'], _id:ref_id}) 
db.collectionB.insert({att3:myrow['att3'], att4:myrow['att4'], ref_id:ref_id}) 
相關問題