簡體   English   中英

mongoose - 根據條件從查詢中排除嵌入文檔

[英]mongoose - exclude embedded document from query based on condition

我正在使用 mongoose。 我的數據庫中有以下文檔:

question: {
    "id": "60ab9bd0d40a362189e842ff",
    "deletedAt": null
        "answers": [
        {
            "id": "60ab9e4e58a72f4768c5f63b",
            "deletedAt": "2021-05-28T20:23:30.409Z",
        },
        {
            "id": "60ab9e4e58a72f4768c5f64c",
            "deletedAt": null,
        },
    }
}

我想得到deletedAt字段為null的所有問題,以及deletedAt字段為deletedAt的所有答案。 所以我的查詢結果應該是這樣的:

question: {
    "id": "60ab9bd0d40a362189e842ff",
    "deletedAt": null
        "answers": [
         {
            "id": "60ab9e4e58a72f4768c5f64c",
            "deletedAt": null,
        },
    }
}

我試過的:

Question.aggregate([
    { $match: { deletedAt: null }},
    { $project: {
        answers: { 
          $filter: {
            input: "$answers",
            as: "answer",
            cond: { "$$answer.deletedAt": null }
          }
        }
      }
    },
    { $sort: sort },
    { $limit: limit + 1 }
]}

我會非常感謝任何形式的幫助!

使用$eq運算符匹配$filter運算符中的條件,

    { $project: {
        answers: { 
          $filter: {
            input: "$answers",
            as: "answer",
            cond: { 
              $eq: ["$$answer.deletedAt", null]
            }
          }
        }
      }
    },

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM