Maison  >  Article  >  développement back-end  >  Introduction à l'utilisation du pilote MongoDB en PHP7

Introduction à l'utilisation du pilote MongoDB en PHP7

不言
不言original
2018-07-05 14:29:224957parcourir

Cet article présente principalement l'utilisation du pilote MongoDB dans PHP7. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

php7 ne peut utiliser que Mongodb. pilote pour conduire 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 C'est la chaîne de paramètres après ? ci-dessus, qui peut être écrite ici

  • $driverOptions Autres options telles que la lecture et l'écriture par défaut paramètres

Opération MongodbDriver CURD

C'est là que je pensais que ce pilote était anti-humain au début. Il n'y a pas de mots comme trouver, mettre à jour, supprimer, etc. le document. Il n’y a qu’une seule Command classe 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

  • Connexion à 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, retour sur demande

$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行
    ]
]
  • Regroupement, tri

$cmd = [
    'aggregate' => 'table', // collection 表名
    'pipeline' => [
        '$group' => 'class',
        '$sort' => 'score'
    ]
]
  • Lire 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 doivent respectivement passer dans la fonction script javascript et utiliser l'objectid de mongodb.

Exception

Toutes les exceptions générées par MongoDBDriver peuvent être capturées à l'aide de MongoDBDriverExceptionException

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun , plus Veuillez faire attention au site Web PHP chinois pour le contenu connexe !

Recommandations associées :

PHP utilise Azure Storage Blob pour télécharger des fichiers

imagettfbbox et imagettftext en php encapsulent automatiquement le texte et Méthode images

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn