Node.jsMongoDBクエリ_


結果をフィルタリングする

コレクション内のドキュメントを検索する場合、クエリオブジェクトを使用して結果をフィルタリングできます。

メソッドの最初の引数はfind()クエリオブジェクトであり、検索を制限するために使用されます。

アドレスが「ParkLane38」のドキュメントを検索します。

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/

アドレスが文字「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' }
]