唯一の違いは、実際にはObjectIdであるということです。 もう1つは、ObjectIdのように見える文字列表現です。 。
ObjectIdとしてのDBRef:
db.persons.insert({name: 'cavin',
sister: new DBRef('persons',
new ObjectId('5165419064fada69cef33ea2'))}) // use an ObjectId
文字列としてのDBRef:
db.persons.insert({name: 'bob',
sister: new DBRef('persons',
'5165419064fada69cef33ea2')}) // use a string
含めた例では、ObjectId 形式は、文字列表現に必要な24バイトではなく、12バイトの値であるため、より効率的なストレージになる可能性があります。 DBRefを使用したい場合 s、ObjectIdを使用します 参照されるコレクションがObjectIdを使用している場合 s _idの場合 。
ObjectIdを使用する必要はありません DBRef
。キーを表す任意の値にすることができます(_id )関連するコレクション/DBの。
ドキュメント
として DBRefを使用するやむを得ない理由がない限り、 、代わりに手動参照を使用してください。