簡體   English   中英

mongoDB中數組中的字符串字段值長度

[英]String field value length in array in mongoDB

如何從嵌套在另一個字段中的字段中獲取字符長度? 它在一個數組中。 例如:

{
    "_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個。

在發出請求時,我在mongoDB中String字段值長度的引導

這個請求不適合這種情況,或者我做錯了什么。

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

我收到錯誤: https//gyazo.com/d2849406d36364de94d6ea89eff1c2b6

我不僅嘗試了這樣的選擇。

UPD mongo版本3.4.3

content.classes.number是一個數組字段而不是字符串,這就是你的查詢無法工作的原因。

這里的一個解決方案是使用$arrayElemAt運算符,但不知道要檢查哪個元素。 但是,例如,我在這里采取第0th元素。

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

暫無
暫無

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

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