몽구스 설치
Express를 사용하여 TestMongoDB 프로젝트를 준비합니다. 명령 순서는 다음과 같습니다.
express TestMongoDB cd TestMongoDB npm install
위 명령을 실행한 후 다음 명령을 사용하여 mongoose를 설치합니다.
npm install mongoose --save
이 명령은 mongoose를 설치하고 이를 프로젝트의 종속성으로 사용하며, mongoose가 의존하는 MongoDB 드라이버 및 regexp 모듈도 자동으로 설치됩니다.
예
mongoose를 사용하면 새 데이터베이스를 만들고, 새 컬렉션을 만들고, 컬렉션의 문서에 대해 CRUD 작업을 수행할 수 있습니다. 코드를 작성할 때 결과가 mongo 셸에 대한 기대치를 충족하는지 확인할 수 있습니다.
TestMongoDB 아래에 다음 내용으로 새 mongo.js 파일을 만듭니다.
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/accounts'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function() { console.log('mongoose opened!'); var userSchema = new mongoose.Schema({ name:{type: String, unique: true}, password:String }, {collection: "accounts"} ); var User = mongoose.model('accounts', userSchema); User.findOne({name:"WangEr"}, function(err, doc){ if(err) console.log(err); else console.log(doc.name + ", password - " + doc.password); }); var lisi = new User({name:"LiSi", password:"123456"}); lisi.save(function(err, doc){ if(err)console.log(err); else console.log(doc.name + ' saved'); }); });
위 파일에 대해 "node mongo.js" 명령을 직접 실행하여 효과를 확인해 보세요.
몽구스를 사용하려면 먼저 require를 한 후 connect 메소드를 사용하여 데이터베이스에 연결합니다. 프로토타입 연결:
connect(uri, options, [callback])
uri 형식은 "mongodb://user:pass@localhost:port/database"와 유사합니다.
Mongoose의 연결 개체는 연결됨, 열기, 닫기, 오류 등과 같은 일부 이벤트를 정의합니다. 이러한 이벤트를 모니터링할 수 있습니다.
샘플 코드에서는 open 이벤트를 듣고 콜백 함수에 Schema를 정의한 후 mongoose.model을 호출하여 Schema를 컴파일하고 Model 개체를 가져왔습니다. 스키마를 정의할 때 지정하는 컬렉션 이름은 mongoose.model의 첫 번째 매개변수와 일치해야 합니다.
Model 객체를 가져온 후 추가, 삭제, 수정, 쿼리 등의 작업을 수행할 수 있습니다. Model 개체에는 mongo 셸에서 사용하는 방법과 유사한 find(), findOne(), update() 및 제거()와 같은 메서드가 있습니다. 이러한 메서드에는 선택적 콜백이 있습니다. 이러한 콜백을 제공하면 실행 결과가 이 콜백을 통해 반환됩니다. 이를 제공하지 않으면 이러한 메소드는 Query를 통해 새 옵션을 조합한 다음 Query의 exec(콜백)을 호출하여 쿼리를 제출할 수 있습니다.
코드에서 WangEr의 파일을 검색할 때 Query 대신 콜백을 사용했습니다.
Model 객체에는 문서를 구성하는 데 사용되는 Model(doc) 메서드가 있습니다. Lisi 문서를 생성할 때 이 Document 개체의 save() 메서드를 사용하면 문서를 데이터베이스에 저장할 수 있습니다.
몽구스를 통한 기본 작업:
1을 추가했습니다
var obj = new Movie(); obj.title = '标题一'; obj.content = '内容'; obj.save(function(err) { });
2. 삭제
Movie.remove({ _id:id },function (err) { })
3. 변화
Movie.update({ _id:id },json,{},function (err) { })
4. 확인
Movie.findOne({ _id: id }, function(err, obj) { }); Movie.find({}).sort({_id: -1}).limit(3).exec(function(err, obj) { })