Maison > base de données > MongoDB > Collection.find() renvoie toujours tous les champs dans MongoDB ?

Collection.find() renvoie toujours tous les champs dans MongoDB ?

WBOY
Libérer: 2023-09-08 09:13:03
avant
1130 Les gens l'ont consulté

collection.find() 总是返回 MongoDB 的所有字段?

Vous pouvez utiliser la syntaxe suivante pour renvoyer un champ spécifique à partir de collection.find().

Cas 1 - La syntaxe est la suivante -

db.yourCollectionName.find({},{"yourFieldName":1}).pretty();
Copier après la connexion

Le nom du champ ci-dessus est défini sur 1, ce qui signifie qu'il ne renverra que ce champ. S'il est défini sur 0, il renvoie tous les champs sauf celui défini sur 0.

Cas 2 - La syntaxe est la suivante -

db.yourCollectionName.find({},{"yourFieldName":0}).pretty();
Copier après la connexion

Pour comprendre la syntaxe ci-dessus, créons une collection en utilisant document. La requête pour créer une collection à l'aide de documents est la suivante : 

> db.returnFieldInFindDemo.insertOne({"StudentName":"John","StudentAge":23,"TechnicalSubject":["MongoDB","MySQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ebfe72f684a30fbdfd566")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Mike","StudentAge":24,"TechnicalSubject":["Java","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ebffd2f684a30fbdfd567")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Sam","StudentAge":22,"TechnicalSubject":["C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ec00f2f684a30fbdfd568")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Carol","StudentAge":20,"TechnicalSubject":["DataStructure","Algorithm"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ec0292f684a30fbdfd569")
}
Copier après la connexion

Affichez tous les documents de la collection à l'aide de la méthode find(). La requête est la suivante -

> db.returnFieldInFindDemo.find().pretty();
Copier après la connexion
Copier après la connexion

Ci-dessous se trouve le résultat -

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23,
   "TechnicalSubject" : [
      "MongoDB",
      "MySQL"
   ]
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24,
   "TechnicalSubject" : [
      "Java",
      "Python"
   ]
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22,
   "TechnicalSubject" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20,
   "TechnicalSubject" : [
      "DataStructure",
      "Algorithm"
   ]
}
Copier après la connexion
Copier après la connexion

Cas 1 - Il s'agit de la requête dans laquelle vous renverrez un champ spécifique.

La requête est la suivante -

> db.returnFieldInFindDemo.find().pretty();
Copier après la connexion
Copier après la connexion

Sortie :

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23,
   "TechnicalSubject" : [
      "MongoDB",
      "MySQL"
   ]
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24,
   "TechnicalSubject" : [
      "Java",
      "Python"
   ]
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22,
   "TechnicalSubject" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20,
   "TechnicalSubject" : [
      "DataStructure",
      "Algorithm"
   ]
}
Copier après la connexion
Copier après la connexion

En regardant l'exemple de sortie ci-dessus, j'ai initialisé le champ "TechnicalSubject" à 1. Cela signifie qu'il renverra uniquement le champ « TechnicalSubject » de tous les documents.

Case 2

Case 2

strong> - Dans le deuxième cas, si vous définissez le champ "TechnicalSubject" à 0, cela signifie que vous obtiendrez tous les champs sauf "TechnicalSubject".

La requête est la suivante -

> db.retunFieldInFindDemo.find({},{"TechnicalSubject":0}).pretty();
Copier après la connexion

Voici le résultat :

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20
}
Copier après la connexion

Cas 3 - Comme vous le savez, si vous utilisez simplement find(), tous les champs seront renvoyés.

La requête est la suivante -

> db.retunFieldInFindDemo.find();
Copier après la connexion

Voici le résultat :

{ "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"), "StudentName" : "John", "StudentAge" : 23, "TechnicalSubject" : [ "MongoDB", "MySQL" ] }
{ "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"), "StudentName" : "Mike", "StudentAge" : 24, "TechnicalSubject" : [ "Java", "Python" ] }
{ "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"), "StudentName" : "Sam", "StudentAge" : 22, "TechnicalSubject" : [ "C", "C++" ] }
{ "_id" : ObjectId("5c8ec0292f684a30fbdfd569"), "StudentName" : "Carol", "StudentAge" : 20, "TechnicalSubject" : [ "DataStructure", "Algorithm" ] }
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal