我有一个用户,其中包含一个指向组织的参考字段“o”:
> db.users.findOne()
{
"o" : ObjectId("4ec3548544ae1b7234548826")
}
组织包含字段“n”:
> db.organisations.findOne()
{
"n" : "My organization"
}
我想要一个按 on 排序的用户列表,最好是在 Scala / Lift 中。
我有一个用户,其中包含一个指向组织的参考字段“o”:
> db.users.findOne()
{
"o" : ObjectId("4ec3548544ae1b7234548826")
}
组织包含字段“n”:
> db.organisations.findOne()
{
"n" : "My organization"
}
我想要一个按 on 排序的用户列表,最好是在 Scala / Lift 中。
您实际上要求的是加入。MongoDB 没有 JOIN 的概念。
从服务器的角度来看,集合根本不知道彼此。一些工具将其抽象出来(如 Morphia),但实际上只有两种基本方法可以实现这一点:
users
,然后加载organizations
,将它们合并在一起并加入客户端。users
集合内(并保持同步)。这将使您的查询快速工作,但会使更新复杂化。缺少 JOIN 是 MongoDB 的基本权衡之一。如果这是一个常见查询或基本查询,您必须执行 #1、#2 或 #3:选择不同的数据库。