Mongo存储库检索具有arraylist的对象的查询

时间:2018-11-21 04:33:58

标签: java spring mongorepository

我有以下数据库查询,

db.compDoc.find(
    { "comp_id": "MY00000Y"}, 
    { doc: {$elemMatch: {file: "abc"}}}); 

其结果如下所示。

{
    "_id" : ObjectId("5bf28dd4cab0a74d4338abf9"),
    "doc" : [
        {
            "desc" : "string",
            "file" : "abc",
            "path" : "string",
            "type" : "U",
            "createdAt" : ISODate("2018-11-21T10:58:40.065+08:00")
        }
    ]
}

我尝试使用mongoRepository获得该结果。我尝试了下面显示的2个查询。

查询1:

  @Query(value = "{ 'organizationId' : ?0, 'documents.docName': ?1, 'documents': { $elemMatch: { 'documents.docName' : ?1 } }}")
        Optional<OrganizationDocument> findByOrganizationIdAndDocumentsDocName(String orgId, String docName);

查询2:

@Query(value = "{ 'organizationId' : ?0, 'documents.docName' : ?1 }", fields = "{ 'documents.docName' : 'abc' }")
    Optional<OrganizationDocument> findByOrganizationIdAndDocumentsDocName(String orgId, String docName);

结果: 无需过滤即可获取查询1和查询2的整个文档。

请帮助我获得正确的结果。

注意:organizationIddocumentsdocName已与数据库字段匹配。

0 个答案:

没有答案