gpt4 book ai didi

将价格存储为字符串的 MongoDB $gt/$lt 运算符

转载 作者:IT老高 更新时间:2023-10-28 13:03:41 26 4
gpt4 key购买 nike

我正在尝试在我的数据库中查询大于/小于用户指定数字的价格。在我的数据库中,价格是这样存储的:

{price: "300.00"}

根据文档,这应该可行:

db.products.find({price: {$gt:30.00}}).pretty()

但我没有返回任何结果。我也试过 {price: {$gt:30}}

我在这里错过了什么?

是因为价格在数据库中存储为字符串而不是数字?有没有办法解决这个问题?

最佳答案

如果您打算将 $gt 与字符串一起使用,则必须使用正则表达式,这在性能方面并不是很好。只创建一个保存价格数值的新字段或将此字段类型更改为 int/double 会更容易。 javascript 版本也应该可以工作,如下所示:

db.products.find("this.price > 30.00")

因为js会在使用前将其转换为数字。但是,索引不适用于此查询。

关于将价格存储为字符串的 MongoDB $gt/$lt 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18039358/

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