使用聚合管道配合$strLenCP或$size可查询字段长度,字符串用$strLenCP,数组用$size,需用aggregate()实现,结合$addFields和$match筛选,缺失字段可用$ifNull处理。

在 MongoDB 中,如果想查询某个字段的长度(比如字符串长度或数组元素个数),可以使用聚合管道(aggregation pipeline)配合 $strLenCP 或 $size 操作符。具体方法取决于字段类型。
示例:查找 name 字段长度大于 5 的文档
db.collection.aggregate([
{
$addFields: {
nameLength: { $strLenCP: "$name" }
}
},
{
$match: {
nameLength: { $gt: 5 }
}
}
])
nameLength,然后筛选出长度大于 5 的记录。
示例:查找 tags 数组长度等于 3 的文档
db.collection.aggregate([
{
$addFields: {
tagsCount: { $size: "$tags" }
}
},
{
$match: {
tagsCount: 3
}
}
])
$match 阶段使用表达式。
示例:只匹配 name 长度小于等于 10 的文档
db.collection.aggregate([
{
$match: {
$expr: {
$lte: [{ $strLenCP: "$name" }, 10]
}
}
}
])
注意:不能在普通 find() 中直接使用 $strLenCP 或 $size,必须使用 aggregate()。
$ifNull 处理,避免报错。
{
$addFields: {
nameLength: {
$strLenCP: { $ifNull: ["$name", ""] }
}
}
}
$strLenCP(字符串)或 $size(数组),结合聚合管道实现条件查询。以上就是mongodb如何查询字段长度的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号