Maison >développement back-end >PHP7 >Partagez votre expérience en utilisant le pilote PHP7 MongoDB

Partagez votre expérience en utilisant le pilote PHP7 MongoDB

藏色散人
藏色散人avant
2020-09-30 14:56:482718parcourir

Cet article est écrit par la colonne du didacticiel PHP7 pour partager avec vous l'expérience de l'utilisation du pilote PHP7 MongoDB. J'espère qu'il sera utile aux amis dans le besoin !

Partagez votre expérience en utilisant le pilote PHP7 MongoDB

php7 ne peut utiliser que le pilote Mongodb pour piloter mongodb.

Utilisez Mongodb Driver pour vous connecter à la base de données

J'ai refusé lorsque j'ai commencé à utiliser Mongodb Driver. Lorsque j'ai regardé la documentation officielle, je n'ai vu qu'une rangée de classes et de méthodes membres inintelligibles. Après une longue navigation, je n'ai pas trouvé de mots-clés tels que find, update, delete, etc., et même des mots-clés légèrement plus compliqués. tels que les jeux de réplicas et l'authentification des utilisateurs n'étaient pas connus. Comment se connecter à la base de données.
Heureusement, la documentation ne manque pas complètement. Cliquez sur MongodbDriverManger::constructor et vous verrez plusieurs paramètres de construction

  • $uri en forme de mongo://[host:port,host:port,host:port]/[dbname]?[username=aa&password=bb&replicaSet=cc]
  • $uriOptions quel est ce qui précède ?La chaîne de paramètres suivante peut être écrite ici
  • $driverOptions Autres options telles que les paramètres de lecture et d'écriture par défaut

Opération CURD de MongodbDriver

Au début, je pensais que ce pilote était anti-humain. Il n'y avait pas de mots tels que rechercher, mettre à jour, supprimer, etc. dans le document. Il n'y avait qu'une classe Command et un Query类.
La classe de requête est légèrement meilleure et fournit certaines options de requête.
En fait, toutes les opérations sur la base de données Mongo peuvent être effectuées via la classe Command. La documentation du pilote PHP n'introduit pas de commandOptions spécifique.
C'est précisément parce que je suis nouveau sur mongodb que j'ai l'impression que ce pilote est extrêmement bizarre et anti-humain, et qu'il n'y a aucun moyen de démarrer.
La clé pour utiliser ce pilote est d'utiliser la classe Command pour construire un commandOption
Et cela commandOption nous oblige à en apprendre davantage à partir de la documentation officielle de mongodb
MANUEL MONGODB - Commandes de base de données
Toutes les opérations, ajout de données, suppression, modification, tri par agrégation, état de la base de données, authentification des utilisateurs, etc. peuvent être effectués via ces commandes. Voici quelques exemples

  • Se connecter à la base de données
$this->_conn = new MongoDB\Driver\Manager('mongodb://localhost:27017/test');
$this->_db = 'test';
// execute command.
function exec($opts) {
    $cmd = new MongoDB\Driver\Command($opts);
    $res =  $this->_conn->executeCommand($this->_db, $cmd);
    return $res->toArray();
}
  • Requête conditionnelle, renvoyer au besoin
$cmd = [
    'find' => 'table', // collection表名
    'filter' => ['_id' => ['$gte' => 10, '$lt' => 20]],
    'projection' => ['name' => 1, 'email' => 1]
];
$res = $this-exec($cmd);
  • Modifier l'enregistrement
$cmd = [
    'update' => 'table', // collection 表名
    'updates' => [
        ['q' => [_id => ['$lt' => 10]], 'u' => ['status' => 0], 'upsert'=>0,'multi'=>1],
        ['q' => [_id => ['$gte' => 10]], 'u' => ['status' => 1], 'upsert'=>0,'multi'=>1],
    ],
    'ordered' => 1, // 是否依次执行updates语句,true表示执行失败后继续后面的语句,false 表示一旦失败立即返回
]
  • supprimer l'enregistrement, la limite ne peut être que 1 ou 0 !
$cmd = [
    'delete' => 'table', // collection 表名
    'deletes' => [
        ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行
    ]
]
  • Insérer des données
$cmd = [
    'delete' => 'table', // collection 表名
    'deletes' => [
        ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0表示所有,1表示删除1行
    ]
]
  • Grouper, trier
$cmd = [
    'aggregate' => 'table', // collection 表名
    'pipeline' => [
        '$group' => 'class',
        '$sort' => 'score'
    ]
]
  • Lecture de l'état de la base de données
$cmd = [
    'replSetGetStatus' => 1,
]

Classe auxiliaire BSON

Les plus utiles sont bien sûr MongoDBBSONJavascript et MongoDBBSONObjectId, qui sont à passer dans la fonction script javascript et à utiliser l'objectid de mongodb respectivement.

Exception

Toutes les exceptions générées par MongoDBDriver peuvent être capturées avec MongoDBDriverExceptionException

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer