Spring中基于多个字段的mongo文档嵌入式数组查询

时间:2018-11-19 21:56:41

标签: arrays mongodb spring-data-jpa mongodb-query aggregation-framework

我的数据位于以下mongo结构中:

{
  id:ObjectId("xyz")
  name:"aaa"
>list:Array
  >0:Object
    fname:"John1",
    lname:"Doe1"
  >1:Object
    fname:"John2",
    lname:"Doe2"
},
{
  id:ObjectId("abc")
  name:"bbb"
>list:Array
  >0:Object
    fname:"John3",
    lname:"Doe3"
  >1:Object
    fname:"John2",
    lname:"Doe2"
}

我想检索那些匹配fname和lname以及名称的列表项。我已经尝试过以下方法,但是它们都不起作用:

1.{'list.fname':'John2'} -- It's showing all the main documents even it is 
    matching with one list item
2. Tried using { list: {$elemMatch: {'fname': 'John2', 'lname': 'Doe2' }}}
3. ({'list.fname':'John2'},{"name"=1,list.$=1})
4.{$match:{'list.fname':'John2'}},{$unwind:"$list"}, 
 {$match:'list.lname':'Doe2'}}

以上方法均无效,也尝试了stackoverflow中的几个示例,但没有成功。我正在使用mongo 3.6。我还尝试在mongo spring数据中使用方法查询,但是没有用。有人可以帮忙。

0 个答案:

没有答案