是否可以根据文档是否包含一组对象来匹配文档?
Posted
技术标签:
【中文标题】是否可以根据文档是否包含一组对象来匹配文档?【英文标题】:Is it possible to match a document based on whether a document contains a set of objects? 【发布时间】:2016-08-19 13:16:21 【问题描述】:假设我有一个包含对象数组的根文档。 是否可以返回包含一组对象的文档?
例如:
文档 1
"name": "someName"
"date": "someDate"
"anArray" : [
"key1": "value1", "key2":"value2",
"key1": "value3", "key2":"value4"...]
文档 2
"name": "someOtherName"
"date": "someOtherDate"
"anArray" : [
"key1": "value1", "key2":"value2",
"key1": "value4", "key2":"value3"...]
我想要一个匹配并返回 Doc1 的查询: 在 anArray 中包含 key1 = value1 && key 2=value2 对象的文档,并且在 anArray 中也有 key1=value3 和 key2= value4 的对象
这可能吗?
【问题讨论】:
如果没有,除了做客户端连接和过滤器之外,是否有关于如何处理这些类型的用例的任何建议。是否可以通过管道过滤器来解决这个问题?例如:首先检索一个包含 Object Key1 & key2 values 为 value 1 & value 2 的文档列表。然后从结果中过滤掉 Objects with Key1 & Key 2 = value3 & value 4 这也不是嵌套对象查询。我不是要匹配 1。我要匹配多个。类似于:NEST1(match Key1,Key2,Value1,Value2) && NEST2(match key1,Key2,Value3,Value4) 如果您尝试匹配数组中的多个对象,那么您必须为该数组使用nested
数据类型。
我明白了,所以唯一的可能是这样做:即嵌套过滤器 1 -> 匹配“key1”、“value1”&&“key2”、“value2”。跟随嵌套过滤器 2 -> 匹配 "key1","value3", &&"key2","value4"
酷,很高兴它有帮助!
【参考方案1】:
在外部查询上组合多个嵌套过滤器来实现这一点 - 正如 Val 所建议的那样。
【讨论】:
以上是关于是否可以根据文档是否包含一组对象来匹配文档?的主要内容,如果未能解决你的问题,请参考以下文章