我有独特的文件索引非唯一键。什么使得这个文件是唯一的,是文件中多个键的组合。例如:仅当多个匹配时才比较其他字段?
{
first: 'John',
last: 'Foo'
}
{
first: 'Henry',
last: 'Bar'
}
{
first: 'Frank',
last: 'Foo'
}
{
first: 'John',
last: 'Bar'
}
因此,根据上面的例子:如果我们想要查询的Frank
头名,我们只会得到一个结果。理想情况下,由于我们只有一个结果,我们甚至不需要将姓氏与我们的查询进行比较。但是,如果我们查询名称为John
,我们会得到两个结果,所以我们将需要比较次要参数。
在Mongo中如何实现这种查询风格?目标只是为了节省不必要的比较,如果只有一场比赛开始。
请注意,我知道这种查询风格不保证正确的文档。它假定主要字段和每个后续字段匹配“足够好”来验证文档的身份,如果只有一个文档匹配,则为。虽然如果还有其他不太明显的原因,为什么不应该使用这种方法,通过一切手段讨论:)
添加'limit(1)'和'sort()'参数的任何原因都不起作用? –
如果找到多个匹配项,'limit(1)'不会匹配第二个/ etc参数,所以您将无法通过不正确的匹配进行筛选。至于'sort()',我不这么认为..虽然也许有一些用法,我不熟悉 –
所以你试图阻止MongoDB检查'last ='Foo ''弗兰克'案中,纯粹是出于性能原因? – JohnnyHK