【发布时间】:2012-04-18 00:30:21
【问题描述】:
不确定这是否可能,但可以。
我有一个 MongoDB(使用 morphia 来访问它),它有一个如下表(对于这个例子进行了简化,但概念是一样的):
{ Name : "Robert", NickNames : [ "Bob", "Twinkletoes" ] }
{ Name : "Trevor", NickNames : [ "Bob", "Mad man", "Tweedledee" ] }
{ Name : "Samuel", NickNames : [ "Sam" ] }
{ Name : "Patrick", NickNames : [ "Bob", "Mad man" ] }
{ Name : "Mark", NickNames : [ "Adam", "Bob", "Georg" ] }
为了这个例子的目的,假设昵称总是按字母顺序排列,并且昵称所在的位置是相关的。
因此,正如我们所见,每个人的记录在列表中可以有不同数量的昵称。如何执行以下搜索:
-
给我第一个昵称“Bob”和第二个昵称“Mad man”的所有人(即 Person.Nicknames[0] = "Bob" && Person.Nicknames[1] = "Mad man")
应该返回 2 条记录 - Trevor 和 Patrick。
-
给我第一个昵称“Bob”的所有人(即 Person.Nicknames[0] = “Bob”)
应该返回 3 条记录 - Robert、Trevor 和 Patrick。
请注意,没有返回 Mark,因为他的昵称“Bob”不在第一个索引中。
有什么办法吗?
【问题讨论】: