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