Node Mongoose用法詳細【Mongoose使用、Schema、オブジェクト、modelドキュメントなど】

4517 ワード

この例では、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); 

本文で述べたことを皆さんに伝えてほしい.jsプログラム設計が役立ちます.