Php 从MongoDb数据库获取Laravel中的最大值和最小值
我想从products表的数据库中获取最大值和最小值。但它会产生意想不到的结果,甚至是不合逻辑和不正确的。 我不明白这个问题出了什么问题。我正在使用MongoDb。 我也检查了链接,我认为查询是正确的。可能有什么问题。查询如下:Php 从MongoDb数据库获取Laravel中的最大值和最小值,php,mongodb,laravel-5,laravel-5.1,Php,Mongodb,Laravel 5,Laravel 5.1,我想从products表的数据库中获取最大值和最小值。但它会产生意想不到的结果,甚至是不合逻辑和不正确的。 我不明白这个问题出了什么问题。我正在使用MongoDb。 我也检查了链接,我认为查询是正确的。可能有什么问题。查询如下: echo "Max Value ".$max_scores_table = DB::table('products')->where('status', 'enabled')->max('product_data.15'); echo "Min Value
echo "Max Value ".$max_scores_table = DB::table('products')->where('status', 'enabled')->max('product_data.15');
echo "Min Value ".$min_scores_table= DB::table('products')->where('status', 'enabled')->min('product_data.15');
它还给了我这个:
Max Value 99
Min Value 100
但是“最大”查询从数据库返回“99”,而“最小”查询从数据库返回“100”(是的,这是它给出的,我没有键入错误)。甚至有小于99的值和大于100的值。但它不会退回这些
我的收藏结构如下:
{
"_id": "574d6814ab8ff4110a75ee58",
"product_data": {
"15": "2000",
"16": "2000",
},
"status": "enabled",
}
{
"_id": "574d6814ab8ff4110a75ee59",
"product_data": {
"15": "99",
"16": "2000",
},
"status": "enabled",
}
{
"_id": "574d6814ab8ff4110a75ee60",
"product_data": {
"15": "100",
"16": "2000",
},
"status": "enabled",
}
集合中还有其他字段,我删除了它们以缩短长度。任何人都可以帮忙,查询出了什么问题。数据库中的条目似乎是字符串类型,这就是“99”是最大值的原因。您需要将值存储为整型,否则它们将被解释为字符串。我将值从“15”:“2000”更改为“15”:2000,但没有更改。同样,“15”:numberprint(2000)对结果没有任何影响。你能告诉我要保存什么格式来检查吗。你是把所有的值都改成int还是只有一个?@kiwijuice首先我检查的是同一个集合。现在我创建了一个新集合,并在那里用这些值检查它。它起作用了。谢谢