var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test01');
var PersonSchema = new mongoose.Schema({
name:{
first:String,
last:String
}
});
PersonSchema.virtual('name.full').get(function(){
return this.name.first + ' ' + this.name.last;
});
PersonSchema.virtual('name.full').set(function(name){
var split = name.split(' ');
this.name.first = split[0];
this.name.last = split[1];
});
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
var PersonModel = mongoose.model('Person',PersonSchema);
var person1 = new PersonModel({
name:{first:'koma',last:'endia'}
});
console.log("person1=" + person1.name.first + " " + person1.name.last);
console.log("person1=" + person1.name.full);
var person2 = new PersonModel({});
person2.name.full = "koma endia";
console.log("person2=" + person2.name.first + " " + person2.name.last);
console.log("person2=" + person2.name.full);
});
自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。
2013年10月20日日曜日
mongoose-virtualプロパティ
mongooseはバーチャルプロパティ(virtual property)をサポートしています、このトピックで紹介します。
mongooseでMongoDBに接続してみる
前回と前々回はmongodbとmongoskinを使ってMongoDBに接続処理を紹介しました、今回はmongooseの使い方を紹介します。
Mongoose
http://mongoosejs.com/
まず、インストールします
MongoDBは何もせずに、直接にアクセスコードを書きます
Mongoose
http://mongoosejs.com/
まず、インストールします
npm install mongoose
MongoDBは何もせずに、直接にアクセスコードを書きます
nano mongoose.js
...
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test01');
var kittySchema = mongoose.Schema({
name: String,
age: Number
});
kittySchema.methods.speak = function () {
var greeting = this.name
? "Meow name is " + this.name : "I don't have a name"
console.log(greeting);
}
kittySchema.statics.findAge10 = function(cb) {
this.find({age:10}, cb);
}
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
var Kitten = mongoose.model('Kitten', kittySchema);
var silence = new Kitten({ name: 'Silence', age: 10 });
console.log(silence.name);
silence.speak();
silence.save(function(error, doc){
if (error) throw error;
doc.speak();
});
Kitten.find({age:10}, function(error, kittens){
if (error) throw error;
//console.log(kittens.length);
for(var i = 0; i < kittens.length; i++) {
console.log("name=" + kittens[i].name + ", age=" + kittens[i].age);
}
});
Kitten.findAge10(function(error, kittens){
if (error) throw error;
for(var i = 0; i < kittens.length; i++) {
console.log("[findAge10]" + "_id=" + kittens[i]._id + ", name=" + kittens[i].name + ", age=" + kittens[i].age);
}
});
});
...
登録:
コメント (Atom)