Recibo referencia desde aquí: https://github.com/jenssegers/laravel-mongodb
Realizo base de datos y colección en mongodb. No hago el documento y la columna en mongodb. Porque hará automáticamente la columna y el tipo de datos cuando inserte los datos
Mi controlador, puedes ver esto a continuación:
public function create(array $attributes)
{
...
$result = User::create($attributes);
...
}
Mi modelo, puedes ver esto a continuación:
<?php
...
use JenssegersMongodbEloquentModel as Eloquent;
use JenssegersMongodbEloquentHybridRelations;
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",
...
];
}
Cuando inserto datos en mongodb, el tipo de datos en mongodb se creará automáticamente en función de la entrada
¿Cómo configurar el tipo de datos en el modelo?
Cuando tengo un tipo de datos de entrada de datos: string
Puedo configurarlo para el tipo de datos: integer
en mi modelo
Por lo tanto, el tipo de datos que se forma en mongodb es integer
Respuestas
0 para la respuesta № 1MongoDB admite dos constructores que se pueden incrustar en el documento de MongoDB directamente, lo que le permite especificar tipos de datos enteros. En el documento MongoDB, usas lo siguiente:
myField: NumberLong("20372")
para especificar que desea que "myField" contenga un entero con signo de 64 bits. Si solo desea un entero con signo de 32 bits, use:
myField: NumberInt("20372");
Lo que hay que trabajar es cómo generar.ese texto del documento dentro de su script PHP, antes de pasar el texto del documento al controlador MongoDB. Tenga en cuenta también que los constructores NumberLong () y NumberInt () toman cuerda valores, por lo que si su script PHP recibe numéricolos datos como cadenas, no tiene que convertir esas cadenas a un tipo numérico en PHP primero: MongoDB hará eso por usted cuando pase un documento MongoDB que contiene los constructores NumberLong () y NumberInt () a las funciones / métodos de controlador requeridos .
Por supuesto, para descubrir cómo funciona esto, es mejorpara configurar una prueba simple antes de iniciar la edición a gran escala de su proyecto principal, de modo que cuando pase a dicha edición, sepa qué cambios debe realizar de antemano.