Node.js MongoDB 찾기


MongoDB에서는 findfindOne 메서드를 사용하여 컬렉션에서 데이터를 찾습니다.

SELECT 문을 사용하여 MySQL 데이터베이스의 테이블에서 데이터를 찾는 것처럼 .

하나 찾기

MongoDB의 컬렉션에서 데이터를 선택하기 위해 findOne()메서드를 사용할 수 있습니다.

findOne()메서드는 선택 항목에서 첫 번째 항목을 반환합니다.

메서드 의 첫 번째 매개 변수는 findOne()쿼리 개체입니다. 이 예제에서는 컬렉션의 모든 문서를 선택하는 빈 쿼리 개체를 사용합니다(그러나 첫 번째 문서만 반환).

예시

고객 컬렉션에서 첫 번째 문서를 찾습니다.

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

위의 코드를 "demo_mongodb_findone.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_mongodb_findone.js" 실행

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

다음과 같은 결과를 얻을 수 있습니다.

Company Inc.


모두 찾기

MongoDB의 테이블에서 데이터를 선택하기 위해 이 방법을 사용할 수도 있습니다 find().

find()메서드는 선택 항목의 모든 항목을 반환합니다.

메서드 의 첫 번째 매개 변수는 find()쿼리 개체입니다. 이 예에서는 컬렉션의 모든 문서를 선택하는 빈 쿼리 개체를 사용합니다.

find() 메소드의 매개변수 는 MySQL 의 SELECT * 와 동일한 결과를 제공하지 않습니다 .

예시

고객 컬렉션의 모든 문서 찾기:

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

위의 코드를 "demo_mongodb_find.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_mongodb_find.js" 실행

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

다음과 같은 결과를 얻을 수 있습니다.

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

일부 찾기

find()메서드 의 두 번째 매개 변수는 projection결과에 포함할 필드를 설명하는 개체입니다.

이 매개변수는 선택 사항이며 생략하면 모든 필드가 결과에 포함됩니다.

예시

고객 컬렉션에 있는 모든 문서의 "이름" 및 "주소" 필드를 반환합니다.

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

위의 코드를 "demo_mongodb_find_fields.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_mongodb_find_fields.js" 실행

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

다음과 같은 결과를 얻을 수 있습니다.

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

동일한 개체에 0과 1 값을 모두 지정할 수 없습니다(필드 중 하나가 _id 필드인 경우 제외). 값이 0인 필드를 지정하면 다른 모든 필드는 값 1을 가져오고 그 반대의 경우도 마찬가지입니다.

예시

이 예에서는 결과에서 "주소"를 제외합니다.

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

_id 필드를 제외하려면 해당 값을 0으로 설정해야 합니다.

예시

이 예에서는 "이름" 필드만 반환합니다.

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

예시

이 예는 첫 번째 예와 동일한 결과를 제공합니다. _id 필드를 제외한 모든 필드를 반환합니다.

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

예시

동일한 객체에 0과 1 값을 모두 지정하면 오류가 발생합니다(필드 중 하나가 _id 필드인 경우 제외).

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

결과 개체

위 예제의 결과에서 알 수 있듯이 결과는 각 문서를 객체로 포함하는 배열로 변환될 수 있습니다.

예를 들어 세 번째 문서의 주소를 반환하려면 세 번째 배열 객체의 address 속성을 참조하십시오.

예시

세 번째 문서의 주소를 반환합니다.

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

다음 결과가 생성됩니다.

Apple st 652