Node.js MongoDB- navraag


Filter die resultaat

Wanneer jy dokumente in 'n versameling vind, kan jy die resultaat filter deur 'n navraagobjek te gebruik.

Die eerste argument van die find()metode is 'n navraagobjek, en word gebruik om die soektog te beperk.

Voorbeeld

Soek dokumente met die adres "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();
  });
});

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

Begin "demo_mongodb_query.js"

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

Wat vir jou hierdie resultaat sal gee:

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


Filter Met Gereelde Uitdrukkings

Jy kan gereelde uitdrukkings skryf om presies te vind waarna jy soek.

Gereelde uitdrukkings kan slegs gebruik word om stringe navraag te doen .

Om slegs die dokumente te vind waar die "adres"-veld met die letter "S" begin, gebruik die gewone uitdrukking /^S/:

Voorbeeld

Soek dokumente waar die adres met die letter "S" begin:

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

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

Begin "demo_mongodb_query_s.js"

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

Wat vir jou hierdie resultaat sal gee:

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