繁体   English   中英

MongoDB-按引用或“外键”排序(Liftweb,Scala)

[英]MongoDB - Sorting by Reference or 'Foreign Key' (Liftweb, Scala)

我有一个用户,其中包含指向组织的参考字段“ o”:

> db.users.findOne()
{
"o" : ObjectId("4ec3548544ae1b7234548826")
}

组织包含字段“ n”:

> db.organisations.findOne()
{
    "n" : "My organization" 
}

我想要一个按用户排序的列表,最好是在Scala / Lift中。

您真正想要的是加入。 MongoDB没有JOIN的概念。

从服务器的角度来看,集合根本不了解彼此。 一些工具可以将其抽象化(例如Morphia),但实际上只有两种基本方法可以实现此目的:

  1. 手动加入 :加载users ,然后加载organizations ,将它们合并在一起并加入客户端。
  2. 反规范化 :将N字段的副本存储在users集合内(并使其保持同步)。 这将使您的查询工作更快,但会使更新复杂化。

缺少JOIN是MongoDB基本权衡之一。 如果这是常见查询或必要查询,则必须执行#1,#2或#3:选择其他数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM