Node.js
Node.JS 및 MongoDB.
수색…
비고
이것들은 nodej와 함께 mongo db를 사용하기위한 기본적인 CRUD 작업입니다.
질문 : 여기에서 한 일을 할 수있는 다른 방법이 있습니까 ??
답변 : 예, 여러 가지 방법이 있습니다.
질문 : 몽구스 사용이 필요합니까 ??
답 : 아니오. 도움이되는 다른 패키지가 있습니다.
질문 : 어디에서 몽구스의 전체 문서를 얻을 수 있습니까 ??
답변 : 여기를 클릭하십시오.
데이터베이스에 연결하기
노드 응용 프로그램에서 몽고 데이터베이스에 연결하려면 몽구스가 필요합니다.
몽구스 설치하기 응용 프로그램의 땀을 흘리며 몽구스를 설치하십시오.
npm install mongoose
다음으로 우리는 데이터베이스에 연결한다.
var mongoose = require('mongoose');
//connect to the test database running on default mongod port of localhost
mongoose.connect('mongodb://localhost/test');
//Connecting with custom credentials
mongoose.connect('mongodb://USER:PASSWORD@HOST:PORT/DATABASE');
//Using Pool Size to define the number of connections opening
//Also you can use a call back function for error handling
mongoose.connect('mongodb://localhost:27017/consumers',
{server: { poolSize: 50 }},
function(err) {
if(err) {
console.log('error in this')
console.log(err);
// Do whatever to handle the error
} else {
console.log('Connected to the database');
}
});
새 컬렉션 만들기
Mongoose를 사용하면 모든 것이 스키마에서 파생됩니다. 스키마를 만들 수 있습니다.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var AutoSchema = new Schema({
name : String,
countOf: Number,
});
// defining the document structure
// by default the collection created in the db would be the first parameter we use (or the plural of it)
module.exports = mongoose.model('Auto', AutoSchema);
// we can over write it and define the collection name by specifying that in the third parameters.
module.exports = mongoose.model('Auto', AutoSchema, 'collectionName');
// We can also define methods in the models.
AutoSchema.methods.speak = function () {
var greeting = this.name
? "Hello this is " + this.name+ " and I have counts of "+ this.countOf
: "I don't have a name";
console.log(greeting);
}
mongoose.model('Auto', AutoSchema, 'collectionName');
메쏘드가 위와 같이 mongoose.model ()을 사용하여 컴파일하기 전에 스키마에 추가되어야한다는 것을 기억하십시오.
문서 삽입
컬렉션에 새 문서를 삽입하기 위해 스키마의 객체를 만듭니다.
var Auto = require('models/auto')
var autoObj = new Auto({
name: "NewName",
countOf: 10
});
우리는 다음과 같이 저장합니다.
autoObj.save(function(err, insertedAuto) {
if (err) return console.error(err);
insertedAuto.speak();
// output: Hello this is NewName and I have counts of 10
});
그러면 컬렉션에 새 문서가 삽입됩니다.
독서
컬렉션에서 데이터 읽기는 매우 쉽습니다. 컬렉션의 모든 데이터를 가져옵니다.
var Auto = require('models/auto')
Auto.find({}, function (err, autos) {
if (err) return console.error(err);
// will return a json array of all the documents in the collection
console.log(autos);
})
조건이있는 데이터 읽기
Auto.find({countOf: {$gte: 5}}, function (err, autos) {
if (err) return console.error(err);
// will return a json array of all the documents in the collection whose count is greater than 5
console.log(autos);
})
두 번째 매개 변수를 필요한 모든 필드의 개체로 지정할 수도 있습니다
Auto.find({},{name:1}, function (err, autos) {
if (err) return console.error(err);
// will return a json array of name field of all the documents in the collection
console.log(autos);
})
컬렉션에서 하나의 문서 찾기.
Auto.findOne({name:"newName"}, function (err, auto) {
if (err) return console.error(err);
//will return the first object of the document whose name is "newName"
console.log(auto);
})
ID로 컬렉션에서 하나의 문서 찾기.
Auto.findById(123, function (err, auto) {
if (err) return console.error(err);
//will return the first json object of the document whose id is 123
console.log(auto);
})
업데이트 중
컬렉션과 문서를 업데이트 할 때 다음 방법 중 하나를 사용할 수 있습니다.
행동 양식
- 최신 정보()
- updateOne ()
- updateMany ()
- replaceOne ()
최신 정보()
update () 메서드는 하나 이상의 문서 (업데이트 매개 변수)를 수정합니다.
db.lights.update(
{ room: "Bedroom" },
{ status: "On" }
)
이 작업은 'lights'컬렉션에서 room
Bedroom (첫 번째 매개 변수) 인 문서를 검색합니다. 그런 다음 일치하는 문서 status
속성을 On (두 번째 매개 변수)으로 업데이트하고 다음과 같은 WriteResult 개체를 반환합니다.
{ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }
UpdateOne
UpdateOne () 메서드는 하나의 문서 (업데이트 매개 변수)
db.countries.update(
{ country: "Sweden" },
{ capital: "Stockholm" }
)
이 작업은 '국가'컬렉션에서 country
가 스웨덴 인 문서를 찾습니다 (첫 번째 매개 변수) . 그런 다음 일치하는 문서 속성 capital
을 스톡홀름 (두 번째 매개 변수)으로 업데이트하고 다음과 같은 WriteResult 객체를 반환합니다.
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
UpdateMany
UpdateMany () 메서드는 다중 문서 (업데이트 매개 변수)
db.food.updateMany(
{ sold: { $lt: 10 } },
{ $set: { sold: 55 } }
)
이 작업은 여기서 (A '음식'컬렉션) 모든 문서를 업데이트 sold
설정으로 작은 10 * (1 매개 변수)입니다 sold
55. 그런 다음 다음과 같은 WriteResult 객체를 반환합니다.
{ "acknowledged" : true, "matchedCount" : a, "modifiedCount" : b }
a = 일치하는 문서의 수
b = 수정 된 문서 수
ReplaceOne
첫 번째로 일치하는 문서를 대체합니다 (대체 문서).
countries 라는이 예제 콜렉션에는 3 개의 문서가 있습니다.
{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Spain" }
다음 작업은 { country: "Spain" }
문서를 { country: "Finland" }
문서로 바꿉니다.
db.countries.replaceOne(
{ country: "Spain" },
{ country: "Finland" }
)
그리고 반환 :
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
예제 수집 국가 에는 다음이 포함됩니다.
{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Finland" }
삭제 중
몽구스 컬렉션의 문서를 삭제하는 방법은 다음과 같습니다.
Auto.remove({_id:123}, function(err, result){
if (err) return console.error(err);
console.log(result); // this will specify the mongo default delete result.
});