Node.js MongoDB Trouver


Dans MongoDB, nous utilisons les méthodes find et findOne pour rechercher des données dans une collection.

Tout comme l' instruction SELECT est utilisée pour rechercher des données dans une table d'une base de données MySQL.

Trouver un

Pour sélectionner les données d'une collection dans MongoDB, nous pouvons utiliser la findOne()méthode.

La findOne()méthode renvoie la première occurrence de la sélection.

Le premier paramètre de la findOne()méthode est un objet de requête. Dans cet exemple, nous utilisons un objet de requête vide, qui sélectionne tous les documents d'une collection (mais ne renvoie que le premier document).

Exemple

Recherchez le premier document dans la collection clients :

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").findOne({}, function(err, result) {
    if (err) throw err;
    console.log(result.name);
    db.close();
  });
});

Enregistrez le code ci-dessus dans un fichier appelé "demo_mongodb_findone.js" et exécutez le fichier :

Exécutez "demo_mongodb_findone.js"

C:\Users\Your Name>node demo_mongodb_findone.js

Ce qui vous donnera ce résultat :

Company Inc.


Trouver tout

Pour sélectionner des données à partir d'une table dans MongoDB, nous pouvons également utiliser la find()méthode.

La find()méthode renvoie toutes les occurrences de la sélection.

Le premier paramètre de la find()méthode est un objet de requête. Dans cet exemple, nous utilisons un objet de requête vide, qui sélectionne tous les documents de la collection.

Aucun paramètre dans la méthode find() ne vous donne le même résultat que SELECT * dans MySQL.

Exemple

Retrouvez tous les documents de la collection clients :

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Enregistrez le code ci-dessus dans un fichier appelé "demo_mongodb_find.js" et exécutez le fichier :

Exécutez "demo_mongodb_find.js"

C:\Users\Your Name>node demo_mongodb_find.js

Ce qui vous donnera ce résultat :

[
  { _id: 58fdbf5c0ef8a50b4cdd9a84 , name: 'John', address: 'Highway 71'},
  { _id: 58fdbf5c0ef8a50b4cdd9a85 , name: 'Peter', address: 'Lowstreet 4'},
  { _id: 58fdbf5c0ef8a50b4cdd9a86 , name: 'Amy', address: 'Apple st 652'},
  { _id: 58fdbf5c0ef8a50b4cdd9a87 , name: 'Hannah', address: 'Mountain 21'},
  { _id: 58fdbf5c0ef8a50b4cdd9a88 , name: 'Michael', address: 'Valley 345'},
  { _id: 58fdbf5c0ef8a50b4cdd9a89 , name: 'Sandy', address: 'Ocean blvd 2'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8a , name: 'Betty', address: 'Green Grass 1'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8b , name: 'Richard', address: 'Sky st 331'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8c , name: 'Susan', address: 'One way 98'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8d , name: 'Vicky', address: 'Yellow Garden 2'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8e , name: 'Ben', address: 'Park Lane 38'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8f , name: 'William', address: 'Central st 954'},
  { _id: 58fdbf5c0ef8a50b4cdd9a90 , name: 'Chuck', address: 'Main Road 989'},
  { _id: 58fdbf5c0ef8a50b4cdd9a91 , name: 'Viola', address: 'Sideway 1633'}
]

Trouve quelque

Le deuxième paramètre de la find()méthode est l' projectionobjet qui décrit les champs à inclure dans le résultat.

Ce paramètre est facultatif et s'il est omis, tous les champs seront inclus dans le résultat.

Exemple

Renvoie les champs "nom" et "adresse" de tous les documents de la collection clients :

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { _id: 0, name: 1, address: 1 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Enregistrez le code ci-dessus dans un fichier appelé "demo_mongodb_find_fields.js" et exécutez le fichier :

Exécutez "demo_mongodb_find_fields.js"

C:\Users\Your Name>node demo_mongodb_find_fields.js

Ce qui vous donnera ce résultat :

[
  { name: 'John', address: 'Highway 71'},
  { name: 'Peter', address: 'Lowstreet 4'},
  { name: 'Amy', address: 'Apple st 652'},
  { name: 'Hannah', address: 'Mountain 21'},
  { name: 'Michael', address: 'Valley 345'},
  { name: 'Sandy', address: 'Ocean blvd 2'},
  { name: 'Betty', address: 'Green Grass 1'},
  { name: 'Richard', address: 'Sky st 331'},
  { name: 'Susan', address: 'One way 98'},
  { name: 'Vicky', address: 'Yellow Garden 2'},
  { name: 'Ben', address: 'Park Lane 38'},
  { name: 'William', address: 'Central st 954'},
  { name: 'Chuck', address: 'Main Road 989'},
  { name: 'Viola', address: 'Sideway 1633'}
]

Vous n'êtes pas autorisé à spécifier à la fois les valeurs 0 et 1 dans le même objet (sauf si l'un des champs est le champ _id). Si vous spécifiez un champ avec la valeur 0, tous les autres champs obtiennent la valeur 1, et vice versa :

Exemple

Cet exemple exclura "adresse" du résultat :

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { address: 0 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Pour exclure le champ _id, vous devez définir sa valeur sur 0 :

Exemple

Cet exemple renverra uniquement le champ "name":

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { _id: 0, name: 1 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Exemple

Cet exemple vous donnera le même résultat que le premier exemple ; renvoie tous les champs sauf le champ _id :

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { _id: 0 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Exemple

Vous obtenez une erreur si vous spécifiez à la fois les valeurs 0 et 1 dans le même objet (sauf si l'un des champs est le champ _id) :

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { name: 1, address: 0 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

L'objet de résultat

Comme vous pouvez le voir dans le résultat de l'exemple ci-dessus, le résultat peut être converti en un tableau contenant chaque document en tant qu'objet.

Pour renvoyer par exemple l'adresse du troisième document, il suffit de se référer à la propriété address du troisième objet tableau :

Exemple

Renvoyez l'adresse du troisième document :

console.log(result[2].address);

Ce qui produira ce résultat :

Apple st 652