Node.js MongoDB finden


In MongoDB verwenden wir die Methoden find und findOne , um Daten in einer Sammlung zu finden.

So wie die SELECT -Anweisung verwendet wird, um Daten in einer Tabelle in einer MySQL-Datenbank zu finden.

Einen finden

Um Daten aus einer Sammlung in MongoDB auszuwählen, können wir die findOne()Methode verwenden.

Die findOne()Methode gibt das erste Vorkommen in der Auswahl zurück.

Der erste Parameter der findOne()Methode ist ein Abfrageobjekt. In diesem Beispiel verwenden wir ein leeres Abfrageobjekt, das alle Dokumente in einer Sammlung auswählt (aber nur das erste Dokument zurückgibt).

Beispiel

Finden Sie das erste Dokument in der Kundensammlung:

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();
  });
});

Speichern Sie den obigen Code in einer Datei namens "demo_mongodb_findone.js" und führen Sie die Datei aus:

Führen Sie "demo_mongodb_findone.js" aus

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

Was Ihnen dieses Ergebnis geben wird:

Company Inc.


Finde alle

Um Daten aus einer Tabelle in MongoDB auszuwählen, können wir auch die find()Methode verwenden.

Die find()Methode gibt alle Vorkommen in der Auswahl zurück.

Der erste Parameter der find()Methode ist ein Abfrageobjekt. In diesem Beispiel verwenden wir ein leeres Abfrageobjekt, das alle Dokumente in der Sammlung auswählt.

Ohne Parameter in der Methode find() erhalten Sie das gleiche Ergebnis wie SELECT * in MySQL.

Beispiel

Finden Sie alle Dokumente in der Kundensammlung:

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();
  });
});

Speichern Sie den obigen Code in einer Datei namens „demo_mongodb_find.js“ und führen Sie die Datei aus:

Führen Sie "demo_mongodb_find.js" aus

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

Was Ihnen dieses Ergebnis geben wird:

[
  { _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'}
]

Finde etwas

Der zweite Parameter der find()Methode ist das projectionObjekt, das beschreibt, welche Felder in das Ergebnis eingeschlossen werden sollen.

Dieser Parameter ist optional, und wenn er weggelassen wird, werden alle Felder in das Ergebnis aufgenommen.

Beispiel

Geben Sie die Felder "Name" und "Adresse" aller Dokumente in der Kundensammlung zurück:

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();
  });
});

Speichern Sie den obigen Code in einer Datei namens „demo_mongodb_find_fields.js“ und führen Sie die Datei aus:

Führen Sie "demo_mongodb_find_fields.js" aus

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

Was Ihnen dieses Ergebnis geben wird:

[
  { 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'}
]

Sie dürfen nicht sowohl 0- als auch 1-Werte im selben Objekt angeben (außer wenn eines der Felder das _id-Feld ist). Wenn Sie ein Feld mit dem Wert 0 angeben, erhalten alle anderen Felder den Wert 1 und umgekehrt:

Beispiel

Dieses Beispiel schließt "Adresse" aus dem Ergebnis aus:

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();
  });
});

Um das Feld _id auszuschließen, müssen Sie seinen Wert auf 0 setzen:

Beispiel

Dieses Beispiel gibt nur das Feld „Name“ zurück:

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();
  });
});

Beispiel

Dieses Beispiel liefert das gleiche Ergebnis wie das erste Beispiel; gibt alle Felder außer dem Feld _id zurück:

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();
  });
});

Beispiel

Sie erhalten einen Fehler, wenn Sie sowohl 0- als auch 1-Werte im selben Objekt angeben (außer wenn eines der Felder das _id-Feld ist):

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();
  });
});

Das Ergebnisobjekt

Wie Sie am Ergebnis des obigen Beispiels sehen können, kann das Ergebnis in ein Array konvertiert werden, das jedes Dokument als Objekt enthält.

Um z. B. die Adresse des dritten Dokuments zurückzugeben, beziehen Sie sich einfach auf die Eigenschaft address des dritten Array-Objekts:

Beispiel

Geben Sie die Adresse des dritten Dokuments zurück:

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

Was zu diesem Ergebnis führen wird:

Apple st 652