gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:47:34 25 4
gpt4 key购买 nike

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

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

最佳答案

content.classes.number 是一个数组字段而不是字符串,这就是您的查询无法工作的原因。

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

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

关于arrays - mongoDB中数组中的字符串字段值长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55580988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com