組織を指す参照フィールド「o」を含むユーザーがいます。
> db.users.findOne()
{
"o" : ObjectId("4ec3548544ae1b7234548826")
}
組織にはフィールド「n」が含まれています。
> db.organisations.findOne()
{
"n" : "My organization"
}
できればScala/Liftでソートされたユーザーのリストが欲しいです。
組織を指す参照フィールド「o」を含むユーザーがいます。
> db.users.findOne()
{
"o" : ObjectId("4ec3548544ae1b7234548826")
}
組織にはフィールド「n」が含まれています。
> db.organisations.findOne()
{
"n" : "My organization"
}
できればScala/Liftでソートされたユーザーのリストが欲しいです。
あなたが効果的に求めているのはJOINです。MongoDB には JOIN の概念がありません。
サーバーの観点からは、コレクションは単にお互いを認識していません。これを抽象化するツールもありますが (Morphia など)、これを実現する基本的な方法は 2 つしかありません。
users
から をロードしorganizations
、それらをマージしてクライアント側で結合します。users
コレクション内に格納します (そして同期を維持します)。これにより、クエリは高速に動作しますが、更新が複雑になります。この JOIN の欠如は、MongoDB の基本的なトレードオフの 1 つです。これが一般的なクエリまたは重要なクエリである場合は、#1、#2、または #3 のいずれかを実行する必要があります: 別の DB を選択します。