MongoDB 与字符串数组中值的字段的 expr+gt+lt 匹配
MongoDB match with expr+gt+lt of a field with value in array of string
{
prediction:{
B-experience:["5"]
}
}
在这里,我需要找到 B-experience 大于和小于某个最小值和最大值 values.In 我的文档 B-experience 在字符串数组中。所以我必须将该数组字符串转换为 int 并通过 expr 与“gt”和“lt”进行聚合匹配。我尝试了很多方法。但没有得到想要的结果。有人能帮帮我吗
您可以使用 $arrayElemAt
从数组中取出字符串,并使用 $toInt
将字符串转换为 int。
db.collection.aggregate([
{
$project: {
predictionBexperience: {
"$arrayElemAt": [
"$prediction.B-experience",
0
]
}
}
},
{
$project: {
predictionBexperience: {
"$toInt": "$predictionBexperience"
}
}
},
{
$match: {
predictionBexperience: {
$gt: 2,
$lte: 7
}
}
}
])
在 playground 上可以看到更多示例数据。
{
prediction:{
B-experience:["5"]
}
}
在这里,我需要找到 B-experience 大于和小于某个最小值和最大值 values.In 我的文档 B-experience 在字符串数组中。所以我必须将该数组字符串转换为 int 并通过 expr 与“gt”和“lt”进行聚合匹配。我尝试了很多方法。但没有得到想要的结果。有人能帮帮我吗
您可以使用 $arrayElemAt
从数组中取出字符串,并使用 $toInt
将字符串转换为 int。
db.collection.aggregate([
{
$project: {
predictionBexperience: {
"$arrayElemAt": [
"$prediction.B-experience",
0
]
}
}
},
{
$project: {
predictionBexperience: {
"$toInt": "$predictionBexperience"
}
}
},
{
$match: {
predictionBexperience: {
$gt: 2,
$lte: 7
}
}
}
])
在 playground 上可以看到更多示例数据。