Tutoriel MongoD...login
Tutoriel MongoDB
auteur:php.cn  temps de mise à jour:2022-04-21 17:49:03

Document de requête MongoDB


Syntaxe

Le format de syntaxe des données de requête MongoDB est le suivant :

>db.COLLECTION_NAME.find()

La méthode find() affiche tous les documents de manière non structurée.

Si vous avez besoin de lire les données de manière facile à lire, vous pouvez utiliser la méthode Pretty(), la syntaxe est la suivante :

>db.col.find().pretty()

La méthode Pretty() affiche tous les documents de manière formatée.

Instance

Dans l'exemple suivant, nous interrogeons les données dans la collection col :

> db.col.find().pretty()
{
        "_id" : ObjectId("56063f17ade2f21f36b03133"),
        "title" : "MongoDB 教程",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "php中文网",
        "url" : "http://www.php.cn",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}

En plus de la méthode find(), il existe également une méthode findOne() , qui renvoie uniquement un document.


Comparaison de l'instruction Where de MongoDB et du SGBDR

Si vous êtes familier avec les données SQL classiques, vous pouvez mieux comprendre la requête d'instruction conditionnelle de MongoDB grâce au tableau suivant :

操作格式范例RDBMS中的类似语句
等于{<key>:<value>}db.col.find({"by":"php中文网"}).pretty()where by = 'php中文网'
小于{<key>:{$lt:<value>}}db.col.find({"likes":{$lt:50}}).pretty()where likes < 50
小于或等于{<key>:{$lte:<value>}}db.col.find({"likes":{$lte:50}}).pretty()where likes <= 50
大于{<key>:{$gt:<value>}}db.col.find({"likes":{$gt:50}}).pretty()where likes > 50
大于或等于{<key>:{$gte:<value>}}db.col.find({"likes":{$gte:50}}).pretty()where likes >= 50
不等于{<key>:{$ne:<value>}}db.col.find({"likes":{$ne:50}}).pretty()where likes != 50

Condition ET de MongoDB

La méthode find() de MongoDB peut transmettre plusieurs clés (clés), chaque clé (clé) séparée par des virgules et la condition ET du SQL normal.

Le format de syntaxe est le suivant :

>db.col.find({key1:value1, key2:value2}).pretty()

Exemple

L'exemple suivant utilise les touches by et title pour interroger Données chinoises php du Tutoriel MongoDB sur le net

> db.col.find({"by":"php中文网", "title":"MongoDB 教程"}).pretty()
{
        "_id" : ObjectId("56063f17ade2f21f36b03133"),
        "title" : "MongoDB 教程",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "php中文网",
        "url" : "http://www.php.cn",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}

L'exemple ci-dessus est similaire à l'instruction WHERE : WHERE by='php中文网' AND title='Tutoriel MongoDB'


Condition MongoDB OR

L'instruction conditionnelle MongoDB OR utilise le mot-clé $or, et le format de syntaxe est le suivant :

>db.col.find(
   {
      $or: [
	     {key1: value1}, {key2:value2}
      ]
   }
).pretty()

Exemple

Dans l'exemple suivant, nous démontrons la clé de requête par et la valeur est le site Web chinois php ou la clé titre et la valeur est le document MongoDB Tutorial.

>db.col.find({$or:[{"by":"php中文网"},{"title": "MongoDB 教程"}]}).pretty()
{
        "_id" : ObjectId("56063f17ade2f21f36b03133"),
        "title" : "MongoDB 教程",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "php中文网",
        "url" : "http://www.php.cn",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
>

Utilisation combinée de AND et OR

L'exemple suivant démontre l'utilisation conjointe de AND et OR, similaire à l'instruction SQL conventionnelle : 'where likes>50 AND (by = 'site Web chinois php' OU title = 'Tutoriel MongoDB')'

>db.col.find({"likes": {$gt:50}, $or: [{"by": "php中文网"},{"title": "MongoDB 教程"}]}).pretty()
{
        "_id" : ObjectId("56063f17ade2f21f36b03133"),
        "title" : "MongoDB 教程",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "php中文网",
        "url" : "http://www.php.cn",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}

Site Web PHP chinois