我试图弄清楚如何将文档链接/引用到另一个文档,但我在文档或其他来源中找不到太多信息或示例。链接文档时,我必须通过 ObjectID 链接还是可以使用任何字段?我需要直接从原始文档中提取字段值,还是可以从任何地方传递相同的值?例如,给定一个 UUID 对象的十六进制字符串,我想通过包含 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 对象的副本?