0

我有以下数据库查询,

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 个查询。

查询一:

  @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已与数据库字段匹配。

4

0 回答 0