0
我有含有一种叫searchTerms场蒙戈文件。这是一个包含单词的数组。 [“字词1”,“词条2”,“TERM3”,“term4”]MongoDB的映射减少搜索条件
我想写一个由相关文档返回的功能。这意味着,与大多数文件查询的searchCriteria内术语第一,接着下一个最高的量方面等
实施例:
文件:
{"_id":"1", "searchTerms":["a","b","c","d"]}
{"_id":"2", "searchTerms":["a","b","x","q"]}
{"_id":"3", "searchTerms":["a","e","x","n"]}
{"_id":"4", "searchTerms":["e","f","g","z"]}
对于搜索术语:[“一” ,“b”,“c”]结果应该是:
{"_id":"1", "searchTerms":["a","b","c","d"]}
{"_id":"2", "searchTerms":["a","b","x","q"]}
{"_id":"3", "searchTerms":["a","e","x","n"]}
我已经写了一个函数来做到这一点,但它非常复杂,我认为效率低下。我在读有关地图减少和不知道它是否能在这种情况下帮助吗?我绞尽脑汁试图弄清楚如何做到这一点。我不确定它是否可以或不可以?如果是的话,有人可以告诉我它是如何工作的?
嗨Veeram,哇谢谢你的回答太棒了!我没有意识到它可以被浓缩这么多...只是一对夫妇的问题。如果我想包含文档中的所有字段,是否需要在第一个$项目中特别包含全部内容?即“field1”:1,“field2”:1? –
如果要包含所有字段,则可以在第一个项目中使用“字段”:$$ ROOT,但这也包含计算字段“匹配”。所以要么是$$ ROOT,要么你只需要在第一个项目中特别包含。 – Veeram
Veeram我不能够感谢你!天才 –