mongodb与一个字段中的expr+ gt+ lt匹配,字符串中值

发布于 2025-01-21 04:23:57 字数 219 浏览 0 评论 0原文

{
prediction:{
        B-experience:["5"]    
           }
       }

在这里,我需要找到B-体验大于某些分钟和最大值的B-体验。在我的文档中,B-体验在字符串中。因此,我必须将该数组字符串与“ GT”和“ LT”通过ExpR转换为INT,并汇总匹配。我尝试了很多方法。但没有得到期望的结果。有些人可以帮助我。

{
prediction:{
        B-experience:["5"]    
           }
       }

Here,I need to find the B-experience is greater than and less than by some min and max values.In my document B-experience is in array of string. So i have to convert that array string in to int and aggregate match by expr with "gt" and "lt". I have tried with so many methods. But not getting desired result. Can some could help me out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意中人 2025-01-28 04:23:57

您可以使用$ arrayElemat将字符串从数组中取出,$ toint为了将字符串投放到int。

db.collection.aggregate([
  {
    $project: {
      predictionBexperience: {
        "$arrayElemAt": [
          "$prediction.B-experience",
          0
        ]
      }
    }
  },
  {
    $project: {
      predictionBexperience: {
        "$toInt": "$predictionBexperience"
      }
    }
  },
  {
    $match: {
      predictionBexperience: {
        $gt: 2,
        $lte: 7
      }
    }
  }
])

可以在 Playground 带有更多示例数据的情况下看到。

You can use $arrayElemAt to get the string out of the array, and $toInt in order to cast the string to int.

db.collection.aggregate([
  {
    $project: {
      predictionBexperience: {
        "$arrayElemAt": [
          "$prediction.B-experience",
          0
        ]
      }
    }
  },
  {
    $project: {
      predictionBexperience: {
        "$toInt": "$predictionBexperience"
      }
    }
  },
  {
    $match: {
      predictionBexperience: {
        $gt: 2,
        $lte: 7
      }
    }
  }
])

As can be seen on the playground with some more sample data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文