수색…


비고

이것들은 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.
});


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow