Node.js Запрос MongoDB
Отфильтровать результат
При поиске документов в коллекции вы можете отфильтровать результат с помощью объекта запроса.
Первый аргумент find()
метода является объектом запроса и используется для ограничения поиска.
Пример
Найти документы с адресом «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();
});
});
Сохраните приведенный выше код в файле с именем «demo_mongodb_query.js» и запустите файл:
Запустите «demo_mongodb_query.js»
C:\Users\Your Name>node demo_mongodb_query.js
Что даст вам этот результат:
[
{ _id: 58fdbf5c0ef8a50b4cdd9a8e
, name: 'Ben', address: 'Park Lane 38' }
]
Фильтр с регулярными выражениями
Вы можете написать регулярные выражения, чтобы найти именно то, что вы ищете.
Регулярные выражения можно использовать только для запроса строк .
Чтобы найти только те документы, где поле «адрес» начинается с буквы «S», используйте регулярное выражение /^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();
});
});
Сохраните приведенный выше код в файле с именем «demo_mongodb_query_s.js» и запустите файл:
Запустите «demo_mongodb_query_s.js»
C:\Users\Your Name>node demo_mongodb_query_s.js
Что даст вам этот результат:
[
{ _id:
58fdbf5c0ef8a50b4cdd9a8b , name: 'Richard',
address: 'Sky st 331' },
{ _id: 58fdbf5c0ef8a50b4cdd9a91 , name: 'Viola', address: 'Sideway
1633' }
]