Node Mongoose用法詳細解【Mongoose使用、Schema、対象、model文書など】

4418 ワード

本論文の実例はNode Mongooseの使い方を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
Mongoose概要
は、JavaScriptオブジェクトとデータベースとの関係を作成するフレームです。Object related model。オブジェクトを操作すると、データベースを操作します。オブジェクトが生成され、持続化されました。
初期使用のMongoose
データベースを接続

var mongoose = require('mongoose');

//       
var db = mongoose.createConnection('mongodb://localhost:27017/zf');

//  open  
db.once('open',function ( callback ) {
  
  console.log('       ');
  
});

module.exports = db;
定義モデルschema -> schema scatic -> を作成します

new mongoose.schema({}); //   json,    。
モデルを作成するdb.model(collectionsName,schemaName);

var mongoose = require('mongoose');
var db = require('./db.js');

//    schema  。 schema--  
var StudentSchema = new mongoose.Schema({
  name: {type: String, default: '    '},
  age: { type: Number },
  sex: { type: String }
});
//     
StudentSchema.statics.zhaoren = function ( name,callback ) {
  this.model('Student').find({'name': name},callback);
}

//      
StudentSchema.statics.xiugai = function ( conditions,update,options,callback ) {
  this.model('Student').update(conditions,update,options,callback);
}
var studentModel = db.model('Student',StudentSchema);
module.exports = studentModel;
app.jsでは操作類のみで、データベースを操作しません。

var Cat = mongoose.model('Cat'{'name': String, age: Number});
Cat.find({'name': 'tom'},function( err.reslut ){
  var xiaomao = reslut[0]; 
  //         Cat   ,   Cat   find   ,  find    ,  Cat     。 //          , find           。
  xiaomao.age = 10;
  xiaomao.save();
})
Schema
ドキュメント構造のサポートの種類を指定します。

String
Number
Date
Buffer
Boolean
Mixed
ObjectId
Array
オブジェクトの定義方法
実例となるオブジェクトは、使用される方法、実例によって呼び出される。

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mlln');
var db = mongoose.connection;

db.on('open',function ( callback ) {
  console.log('       ');
});

var animalSchema = new mongoose.Schema({
  'name': String,
  'type': String
});


animalSchema.methods.zhaotonglei = function ( cb ) {
  this.model('Animal').find({'type': this.type},cb);
}

var Animal = mongoose.model('Animal',animalSchema);
 
//module.exports = Blog;

/*Animal.create({'name': '  ','type': ' '});
Animal.create({'name': 'imim','type': ' '});
Animal.create({'name': '  ','type': ' '});
Animal.create({'name': '   ','type': ' '});
Animal.create({'name': 'snoopy','type': ' '});
*/

//blog.save();

Animal.findOne({'name': 'imim'},function ( err,reslut ) {
  var dog = reslut;
  dog.zhaotonglei(function ( err,resluts ) {
    console.log( resluts );
  });
});
modelドキュメント操作
構造関数
コンストラクション、パラメータ1:セット名、パラメータ2:Schema例

db.model(“test1”, TestSchema );
クエリー
クエリー、パラメータ1が無視されていたり、空のオブジェクトがあればすべてのセットドキュメントに戻ります。

model.find({}, callback);
model.find({},field,callback);
//    ,  2: {‘name':1, ‘age':0}            name ,    age.(_id   1)
model.find({},null,{limit:20});
//    ,  3:      limit         20 ,   20      .
model.findOne({}, callback);
//          
model.findById(‘obj._id', callback);
//          ,  .       __id     
作成
作成し、セット内のドキュメントを作成します。

Model.create(    , callback))
更新
更新、パラメータ1:照会条件、パラメータ2:更新対象は、MondoDBの更新修正器を使用することができます。

Model.update(conditions, update, function(error)
削除
削除、パラメータ1:クエリー条件

Model.remove(conditions,callback); 
ここで述べたように皆さんのnode.jsプログラムの設計に役に立ちます。