mongoDB中数组中的字符串字段值长度

时间:2019-04-08 20:05:37

标签: arrays mongodb mongodb-query

如何从嵌套在另一个字段中的字段中获取字符长度?它在一个数组中。例如:

{
    "_id" : ObjectId("687e1db"),
    "content" : {
        "ods" : "1102223000241",
        "startDate" : ISODate("2017-05-11T12:00:00Z"),
        "classes" : [
            {
              "driveNumber" : "9999078900007091",
              "number" : "00107605829357",
              "sId" : "0000000005009593"
            }
        ],
         "user" : "SoftLogic",
    },
    "level" : 2
}

我想在content.classes.number中获得一个示例,该字段中的字符超过16个。

发出请求时,我受到String field value length in mongoDB的指导

此请求不适合这种情况,或者我做错了事。

db.Basis.find({
    "content.classes.number": { "$exists": true }, 
    "$expr": { "$gt": [ { "$strLenCP": "$content.classes.number" }, 16 ] }})

我收到错误消息:https://gyazo.com/d2849406d36364de94d6ea89eff1c2b6

我不仅尝试了这些选项。

UPD mongo版本3.4.3

1 个答案:

答案 0 :(得分:1)

request是一个数组字段,而不是字符串,这就是为什么您的查询无法工作的原因。

这里的一种解决方案是使用$arrayElemAt运算符,但不知道要检查哪个元素。但是例如,我在这里使用content.classes.number元素。

0th