查询中的MongoDB数组大小条件

时间:2015-02-26 23:15:49

标签: arrays mongodb

我目前有一个简单的MongoDB条件查询,如下所示:

{
    "$and": [
        {
            "ApplicationStatus": "UW_SECOND_LEVEL"
        },
        {
            "Application.UnderWriterDecisions.ud_cc_total_aggregate_limit": {
                "$lte": 300000, "$gt":100000
            }
        },
        {
            "Application.UnderWriterDecisions.UW_Recon_Count": {
                "$eq": null
            }
        }
    ]
}

我需要在上面的查询中添加另一个条件来检查我拥有的数组(DecisionReason)的大小,并确保它只有1的大小:

Application.UnderwriterDecisions.DecisionReason

1 个答案:

答案 0 :(得分:0)

您可以使用$size运算符。此外,您不必使用显式$and运算符,只需将子句与逗号分隔即可。来自文档中的this page

  

MongoDB在指定逗号分隔的表达式列表时提供隐式AND操作。当必须在多个表达式中指定相同的字段或运算符时,必须使用带有$和运算符的显式AND。

此外,您不需要使用$eq运算符,因此您的最终查询将如下所示:

db.collection.find({
    "ApplicationStatus": "UW_SECOND_LEVEL",
    "Application.UnderWriterDecisions.ud_cc_total_aggregate_limit":
        { "$lte": 300000, "$gt": 100000 },
    "Application.UnderWriterDecisions.UW_Recon_Count": null,
    "Application.UnderWriterDecisions.DecisionReason":
        { "$size": 1 }
});

有关$size运算符的详细信息,请查看文档中的this page