Mongoose弹射起步
弹射起步系列主要是讲解某些知识浅显的快速入门
简介
如果你看到这篇文章的话,说明你一定是正在寻找Node操作Mongodb的快速入门
那么废话不多说直入正文(本文大部分内容翻译自Mongoose官方文档,所以沿袭官方文档以一个blog作为例子)
安装
首先你需要有一台完整的安装了Node.js
和npm
的电脑
然后npm install mongoose
完成安装
基础知识
连接
首先你需要连接到本地服务器的Mongo数据库才能进行接下来的操作,如下
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
//由于是弹射起步,所以先简单粗暴的不加安全验证如此链接吧
一般情况下你需要创建一个**Model
**来保存你即将存取的数据的结构,如下
var cat_shema = new mongoose.Schema({
name: String,
friends: [String],
age: Number,
});
//定义cat的Shema
var Cat = mongoose.model('Cat',cat_shema);
//将该Schema发布为Model
这里规定了Model
的名称为Cat,那么对应的collection
就是cats,并且规定了一些数据结构(一目了然)
增删改查
新增
创建一个kitty对象来赋值
var Cat = mongoose.model('Cat');
var kitty = new Cat({ name: 'Zildjian', friends: ['tom', 'jerry']});
kitty.age = 3;
接下来调用save即可保存
kitty.save(function (err) {
console.log('save status:',err ? 'Angry!' : '吼啊!');
});
查询
var Cat = mongoose.model('Cat');
//find参数:
//1.<Object>mongodb selector
//2.<Function>err:错误信息,results:查询结果
Cat.find({}, function (err,results) {
if(err){
console.log('error message',err);
return;
}
console.log('results',results);
});
//此处是不包含条件的基础查询
条件or
查询
var Cat = mongoose.model('Cat');
var condition ={
$or: [
{name: '华莱士'},
{name: '麦克'}
]
};
Cat.find(condition, function (err, results) {
if(err){
console.log('condition error',err);
return;
}
console.log(results);
});
这时返回值为
[{name: '华莱士', friends: ['蛤', '董先森']}]
我们可以看出此处的查询语句为
$or: [
{name: '华莱士'},
{name: '麦克'}
]
可以看出mongoose
所使用的查询语句和mongoDb官方的查询语句很相似,此处可以套用
更改
在我们或的查询结果后
var Cat = mongoose.model('Cat');
var condition ={
$or: [
{name: '蛤蛤'}
]
};
Cat.findOne(condition, function (err, result) {
if(err){
console.log(‘condition error’,err);
return;
}
//如果没有发生错误的话,此处会获得查询结果result
//我们将其参数改变
result.name = "江主席"
//然后保存
result.save(function(err){
if(err){console.log(err)}
})
});
//即可完成更新
删除
使用remove()方法即可删除查询结果