Node.js Query MongoDB


Filtra il risultato

Quando si trovano documenti in una raccolta, è possibile filtrare il risultato utilizzando un oggetto query.

Il primo argomento del find()metodo è un oggetto query e viene utilizzato per limitare la ricerca.

Esempio

Trova i documenti con l'indirizzo "Park Lane 38":

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");
  var query = { address: "Park Lane 38" };
  dbo.collection("customers").find(query).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Salva il codice sopra in un file chiamato "demo_mongodb_query.js" ed esegui il file:

Esegui "demo_mongodb_query.js"

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

Che ti darà questo risultato:

[
  { _id: 58fdbf5c0ef8a50b4cdd9a8e , name: 'Ben', address: 'Park Lane 38' }
]


Filtra con espressioni regolari

Puoi scrivere espressioni regolari per trovare esattamente ciò che stai cercando.

Le espressioni regolari possono essere utilizzate solo per interrogare le stringhe .

Per trovare solo i documenti in cui il campo "indirizzo" inizia con la lettera "S", utilizzare l'espressione regolare /^S/:

Esempio

Trova i documenti in cui l'indirizzo inizia con la lettera "S":

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");
  var query = { address: /^S/ };
  dbo.collection("customers").find(query).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Salva il codice sopra in un file chiamato "demo_mongodb_query_s.js" ed esegui il file:

Esegui "demo_mongodb_query_s.js"

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

Che ti darà questo risultato:

[
  { _id: 58fdbf5c0ef8a50b4cdd9a8b , name: 'Richard', address: 'Sky st 331' },
  { _id: 58fdbf5c0ef8a50b4cdd9a91 , name: 'Viola', address: 'Sideway 1633' }
]