Node.js MongoDB Vind


In MongoDB gebruik ons ​​die find and findOne- metodes om data in 'n versameling te vind.

Net soos die SELECT -stelling gebruik word om data in 'n tabel in 'n MySQL-databasis te vind.

Soek een

Om data uit 'n versameling in MongoDB te kies, kan ons die findOne()metode gebruik.

Die findOne()metode gee die eerste voorkoms in die seleksie terug.

Die eerste parameter van die findOne()metode is 'n navraagobjek. In hierdie voorbeeld gebruik ons ​​'n leë navraagobjek, wat alle dokumente in 'n versameling selekteer (maar net die eerste dokument terugstuur).

Voorbeeld

Vind die eerste dokument in die kliënteversameling:

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

Stoor die kode hierbo in 'n lêer genaamd "demo_mongodb_findone.js" en hardloop die lêer:

Begin "demo_mongodb_findone.js"

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

Wat vir jou hierdie resultaat sal gee:

Company Inc.


Vind alles

Om data uit 'n tabel in MongoDB te kies, kan ons ook die find()metode gebruik.

Die find()metode gee alle voorkomste in die seleksie terug.

Die eerste parameter van die find()metode is 'n navraagobjek. In hierdie voorbeeld gebruik ons ​​'n leë navraagobjek, wat alle dokumente in die versameling selekteer.

Geen parameters in die find() metode gee jou dieselfde resultaat as SELECT * in MySQL.

Voorbeeld

Vind alle dokumente in die kliënteversameling:

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

Stoor die kode hierbo in 'n lêer genaamd "demo_mongodb_find.js" en hardloop die lêer:

Begin "demo_mongodb_find.js"

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

Wat vir jou hierdie resultaat sal gee:

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

Soek Sommige

Die tweede parameter van die find()metode is die projectionobjek wat beskryf watter velde om in die resultaat in te sluit.

Hierdie parameter is opsioneel, en as dit weggelaat word, sal alle velde by die resultaat ingesluit word.

Voorbeeld

Gee die velde "naam" en "adres" van alle dokumente in die kliënteversameling terug:

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

Stoor die kode hierbo in 'n lêer genaamd "demo_mongodb_find_fields.js" en hardloop die lêer:

Begin "demo_mongodb_find_fields.js"

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

Wat vir jou hierdie resultaat sal gee:

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

Jy word nie toegelaat om beide 0 en 1 waardes in dieselfde voorwerp te spesifiseer nie (behalwe as een van die velde die _id-veld is). As jy 'n veld met die waarde 0 spesifiseer, kry alle ander velde die waarde 1, en omgekeerd:

Voorbeeld

Hierdie voorbeeld sal "adres" van die resultaat uitsluit:

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

Om die _id-veld uit te sluit, moet jy die waarde daarvan op 0 stel:

Voorbeeld

Hierdie voorbeeld sal slegs die "naam" veld terugstuur:

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

Voorbeeld

Hierdie voorbeeld sal jou dieselfde resultaat gee as die eerste voorbeeld; gee alle velde behalwe die _id-veld terug:

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

Voorbeeld

Jy kry 'n fout as jy beide 0 en 1 waardes in dieselfde voorwerp spesifiseer (behalwe as een van die velde die _id veld is):

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

Die resultaatvoorwerp

Soos jy kan sien uit die resultaat van die voorbeeld hierbo, kan die resultaat omgeskakel word in 'n skikking wat elke dokument as 'n voorwerp bevat.

Om bv die adres van die derde dokument terug te gee, verwys net na die derde skikking voorwerp se adres eienskap:

Voorbeeld

Stuur die adres van die derde dokument terug:

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

Wat hierdie resultaat sal lewer:

Apple st 652