ドキュメントを別のドキュメントにリンク/参照する方法を理解しようとしていますが、ドキュメントや他のソースで多くの情報や例を見つけていません。ドキュメントをリンクする場合、ObjectIDでリンクする必要がありますか、それとも任意のフィールドを使用できますか?元のドキュメントから直接フィールド値を取得する必要がありますか、それともどこからでも同じ値を渡すことができますか?たとえば、UUIDオブジェクトの16進文字列が与えられた場合、uuid1オブジェクトを含むフィールド'GUID'を介して2つのドキュメントをリンクしたいと思います。
# What is more efficience/the correct way, option 1 or 2?
# Option 1
hexString = '5d78ad35ea5f11e1a183705681b29c47'
newLinkField = { 'linkToSong' : uuid.UUID( hexString ) }
db.artists.update( { 'name' : 'Bob Dylan' }, { $set : newLinkField }, upsert = False)
# Option 2
hexString = '5d78ad35ea5f11e1a183705681b29c47'
songGUID = db.songs.find_one({ 'GUID' : uuid.UUID( hexString ) }, {'GUID': 1 });
newLinkField = { 'linkToSong' : songGUID }
db.artists.update( { 'name' : 'Bob Dylan' }, { $set : newLinkField }, upsert = False)
また、これは実際のリンクを格納しているのですか、それともUUIDオブジェクトの複製だけを格納しているのですか?