mongoose使用,如何使用mongoose操作mongodb

1.回调方法
1.1.建立连接

var db = mongoose.createConnection('localhost','test');

1.2.检测是否连接成功

db.on('error',console.error.bind(console,'连接错误:'));
db.once('open',function(){
  // 连接成功
});

1.3.操作数据库
1.3.1.定义schema

var PersonSchema = new mongoose.Schema({
  	name:String   //定义一个属性name,类型为String
});

1.3.2.将该schema发布为model

var PersonModel = db.model('Person',PersonSchema);
//如果该Model已经发布,则可以直接通过名字索引到,如下:
//var PersonModel = db.model('Person');
//如果没有发布,上一段代码将会异常

1.3.3.用Model创建Entity

var personEntity = new PersonModel({name:'Krouky'});
//打印这个实体的名字看看
console.log(personEntity.name); //Krouky

1.3.4.对数据库进行操作

// 数据保存
personEntity.save();
// 数据查询
PersonModel.find(function(err,persons){
  //查询到的所有person
});

最后总结代码如下:

var mongoose = require("mongoose");
var db = mongoose.createConnection('localhost','test');
db.on('error', console.error.bind(console, '连接错误:'));
db.once('open', function() {
    var PersonSchema = new mongoose.Schema({
        name: String //定义一个属性name,类型为String
    });
    var PersonModel = db.model('Person',PersonSchema);
    var personEntity = new PersonModel({name:'Krouky'});
    console.log(personEntity.name); 
    personEntity.save(); 
    PersonModel.find(function(err,persons){
    	console.log(persons);
    });
});

结果如下:
hhhh1
2.优化版

var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
mongoose.connect('mongodb://127.0.0.1/test');

function saveData(biaoname){
	var saveSchema = new Schema({
		type: String,
		date: Date,
		title: String
	});
	try{
		var saveModel = mongoose.model(biaoname, saveSchema);
	}catch(e){
		var saveModel = mongoose.model(biaoname);
	}
	var saveEntity = new saveModel({
		type: 'saveModel',
		title: 'lineofsaveModel'
	});
	saveEntity.save(function(err,data){
		console.log(err,data);
	});
}

function getData(biaoname){
	var saveSchema = new Schema({
		type: String,
		date: Date,
		title: String
	});
	try{
		var saveModel = mongoose.model(biaoname, saveSchema);
	}catch(e){
		var saveModel = mongoose.model(biaoname);
	}
	saveModel.find({}, function(err,data){
		console.log(err,data);
	});
}

saveData('biao1');
saveData('biao3');
getData('biao3');

注意
(i).连接上之后,就可以进行操作了,只用连接一次。
(ii).promise的使用:
默认的是链式查询,而使用bluebird后可支持回调式。
(iii).mongoose版本4.10.8
3.测试代码(demo):
mongoose–github
参考文章:
Built-in Promises
DeprecationWarning: Mongoose: mpromise

npm mongoose

此条目发表在数据库, 未分类分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注