不确定这是否可能,但这里有。
我有一个 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”不在第一个索引中。
有没有办法做到这一点?