在这个question中,Jeff the Bear解释了如何使用数组搜索文档
contains 'tag1'
contains ['tag1','tag2'],
contains any of ['tag3', 'tag4']
但是,如果我想用一个数组搜索文档,而该数组是另一个数组的一部分,我该怎么办?
post1.tags = ['tag1']
post2.tags = ['tag1','tag3']
post3.tags = ['tag2','tag4']
post4.tags = ['tag1','tag2','tag3','tag4']
我想得到post1和post3,因为它们有标签
contained in ['tag1', 'tag2', 'tag4']
我不想得到post2和post4,因为tag3在['tag1', 'tag2', 'tag4']
中不存在
换句话说,选择其tags数组中的所有元素都可以在另一个条件数组中找到的posts
3条答案
按热度按时间rxztt3cl1#
七年后。..我发现了这个解决方案,基于this主题。
我不确定这是否是一个好的解决方案,性能方面,但它看起来比公认的解决方案更干净。
byqmnocz2#
您可以使用聚合框架来实现这一点。鉴于以下数据
聚合查询
会给予你
oprakyz73#
我有一个类似的任务,什么是为我工作:
也许对某些人来说,这将是一个有用的解决方案,建立在docs www.example中 www.example.com