【问题标题】:MongoDB Array Query to return documents that matches Most elements in arrayMongoDB Array Query 以返回与数组中大多数元素匹配的文档
【发布时间】:2017-06-12 09:23:46
【问题描述】:

查询 mongodb 的方式要求它以排序顺序返回文档,其中大多数元素首先在 Array 中匹配。 示例:

Doc1 : {_id:1,fruits:['apple','orange','banana']}

Doc2 :{_id:1,fruits:['grapes','apple','strawberry']}

如果我在集合中搜索 fruits:['apple','orange'] ,则应该返回 Doc1。 请帮助形成相同的查询。

【问题讨论】:

    标签: arrays mongodb


    【解决方案1】:

    您必须使用评分技术来匹配最合适的数组。在 Mongo 方面,使用全文搜索。该解决方案在以下链接中提供(重复/类似要求)MongoDB compare arrays

    【讨论】:

      【解决方案2】:

      根据上述问题中的描述,请尝试在 MongoDB shell 中执行以下查询。

      db.collection.find{fruits:{$all:['apple','orange']}}
      

      在上面的查询中,$all 运算符获取数组字段值与指定数组过滤器中包含的所有值匹配的文档

      【讨论】:

      • 问题是非常接近地匹配,而不是所有元素的完全匹配。例如,第二个数组也符合条件,但得分低于第一个。
      猜你喜欢
      • 2019-02-16
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 2016-07-13
      • 2019-06-22
      • 2018-04-11
      • 1970-01-01
      • 2018-10-23
      相关资源
      最近更新 更多