1

Mongo データベースにA&という 2 つのコレクションがあるとしますB。各Aドキュメントには へBの参照がありますが、Bドキュメントには への参照はありませんA

内のドキュメントによって参照されてBない内のすべてのドキュメントを効率的に見つけるにはどうすればよいAですか?

Bすべてのドキュメントを取得して手動でドキュメントと比較するよりも効果的なアプローチはありAますか? これは map reduce で実行できますか?

クエリをサポートするためにからBへの参照を追加することを検討する必要がありますか? AMongo はトランザクションをサポートしていないため、障害が発生した場合に矛盾した状態が発生する可能性を回避するために、双方向の参照は避けていました。

また、ソリューションに影響を与える場合は、これらの結果を効果的にページングできる必要があります。

4

1 に答える 1

1

擬似コード:

// Get the set of B document ids that are referenced by A documents.
var bref_ids = db.A.distinct('b_id');

// Get the set of all other B documents.
var unreferenced_b_docs = db.B.find({_id: {$nin: bref_ids}});
于 2012-09-14T01:48:26.240 に答える