node服务端

mongoose使用

2018-11-09  本文已影响13人  夏夏夏夏顿天

在node中使用MongoDB很多情况下,都是使用mongoose的,所以这集来介绍一下

安装

yarn add mongoose

连接

const mongoose = require("mongoose");
mongoose.connect('mongodb://localhost/my_database');

建立schema 和model

shema 相当于对表结构的定义
model 定义表

其实,在MongoDB中不能称为表,应该为文档

shema

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/my_database');

const {Schema} = mongoose;
//  用户对象模型
const userSchema = new Schema({
  name: {
    type: String, //类型
    default: Date.now // 默认值
  },
  avatar: {
        type: String,
        required: true //必须有值
  },
  user: String, 
  passworld: String,
  hash: String, 
  score: Number, 
  learn: Array, 
  message: Array, 
  star: Array, 
  sign: Array,
  signdate: String, 
  isregister: Boolean, 
});

Model

Model是由Schema编译而成的假想(fancy)构造器,具有抽象属性和行为。Model的每一个实例(instance)就是一个document。document可以保存到数据库和对数据库进行操作。

//创建并导出model
const db= {
  User: mongoose.model('MUser', muserSchema),
};
module.exports = db;

现在我们就完成了mongodb的数据连接,数据对象模型的创建。

mongoose常用的API

save是一个实例方法,使用时需要先 new Model() 来实例化

//保存一个用户信息,userobj为你创建的文档对象模型里的字段,需正确对应传入
const userobj={
    email: query,
    passworld: req.body.passworld,
    hash: hash,
    isregister: false,
    score: 5,
    sign: [],
    signdate: ''
}
new db.MUser(userobj).save(function(error){
    if (error) {
        res.status(500).send()
        return
    }
    res.json({statu: 200})
})

remove
删除数据方法

db.Course.remove({_id: req.body.id}, function(err, docs){
    if (err) {
            res.status(500).send();
            return
    }
    res.json({statu: 200})
})

update
更新数据方法

// 更新指定email字段数据条目下字段为content的内容,如果不存在就创建该字段
db.Share.update({email: email},{$set:{content: newarr}}, function(err, docs){
    if (err) {
            res.status(500).send();
            return
    }
    res.json({statu: 200});
})

//$set 指定字段的值,这个字段不存在就创建它。可以是任何MondoDB支持的类型。
Article.update({_id : id}, {$set : {views : 51, title : ‘修改后的标题’ …}})

//$unset 同上取反,删除一个字段
Article.update({views : 50}, {$unset : {views : ‘remove’}})
//执行后: views字段不存在

//$inc 增减修改器,只对数字有效。
Article.update({_id : id}, {$inc : {views : 1}})

//$push 为字段为数组的内容push数据
Article.update({_id : id}, {$push : {message : messageobj}})

//$pop从头部或尾部删除单个元素(1为从后面删除,-1为从前面删除)
db.Article.update(({_id: id), {$pop:{relationships: -1})

1.find

find用来查询并输出该条件下的所有文档
db.Userl.find({conditions}, {options}, callback)
conditions Object类型 //查询条件
options Object 类型 //查询配置参数
callback Function //回调

参考:
https://segmentfault.com/a/1190000015059049
超详细的数据库mongoose的使用方法/教程
Nodejs学习笔记(十四)— Mongoose介绍和入门

上一篇下一篇

猜你喜欢

热点阅读