Node.js MongoDB 찾기
MongoDB에서는 find 및 findOne 메서드를 사용하여 컬렉션에서 데이터를 찾습니다.
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