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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-09-08 09:13:03
avant
1181 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!

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