我从这里得到参考:https://github.com/jenssegers/laravel-mongodb
我在mongodb中创建数据库和集合。我不会在mongodb中制作文档和专栏。因为它会在插入数据时自动生成列和数据类型
我的控制器,你可以在下面看到:
public function create(array $attributes)
{
...
$result = User::create($attributes);
...
}
我的模型,您可以在下面看到:
<?php
...
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Jenssegers\Mongodb\Eloquent\HybridRelations;
class User extends Eloquent
{
use HybridRelations;
use SoftDeletes;
protected $connection = 'mongodb';
public $table = 'users';
protected $dates = ['deleted_at'];
public $fillable = [
...
'name',
...
];
protected $casts = [
...
'name' => 'string',
...
];
}
当我将数据插入mongodb时,mongodb上的数据类型将根据输入自动创建
如何在模型中设置数据类型?
当我输入数据类型时:string
我可以将其设置为数据类型:我的模型中的integer
因此,在mongodb中形成的数据类型为integer
答案 0 :(得分:0)
MongoDB支持两个可以直接嵌入MongoDB文档中的构造函数,从而允许您指定整数数据类型。在MongoDB文档中,使用以下内容:
myField: NumberLong("20372")
指定您要“ myField”包含64位带符号整数。如果只需要32位带符号整数,则可以使用:
myField: NumberInt("20372");
您需要解决的是在将文档文本传递给MongoDB驱动程序之前,如何在PHP脚本中生成该文档文本。还要注意,NumberLong()和NumberInt()构造函数采用 string 值,因此,如果您的PHP脚本接收数字数据作为字符串,则不必先在PHP中将这些字符串转换为数字类型。 :当您将包含NumberLong()和NumberInt()构造函数的MongoDB文档传递给必需的驱动程序函数/方法时,MongoDB将为您做到这一点。
当然,要了解其工作原理,最好在开始对主项目进行全面编辑之前进行一个简单的测试,以便在继续进行上述编辑时,您事先知道要进行哪些更改。