moogoose学习

本文介绍了如何使用Node.js库Moogoose简化MongoDB数据库操作。涵盖了安装Moogoose、建立数据库连接、定义数据模型(schema)及通过模型(Model)进行数据的增删改查等核心操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

moogoose是Node js的一个库 用于在Node Js中更好的操作mongodb的数据操作 

首先我们要下载moogoose的包
npm install moogoose

这里为了简单起见 我们在app.js中引入对数据库的链接

//数据库的链接
var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/TicketProject");
接下来是三大概念的讲述

schema 一种以文件形式存储的数据库模型骨架,无法直接对数据库进行操作 仅仅是集合的模型骨架

我们可以这要去定义一个schema

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var user = new Schema({
    //定义字段
    username:{type:String,unique:true, required: true},
    name:String,
    password:String,
    mobile:String,
    cardTye:String,
    cardId:String,
    email:String,
});
这就相当于在关系型数据库中的一张表 这里user就是一个集合的名称 如果user存在 则会向其中插入数据,否则会创建该集合

基本属性类型有:字符串,日期,数值,布尔型,数组,内嵌文档等

接下来就是暴露给外部进行使用

exports.User = mongoose.model("User", user);
这里表示给user起一个别名 User 这样可以在路由文件中进行使用

Models 简述 由schema构造生成的模型,除了schema定义的数据库骨架以外,还具备对数据库的操作功能

var models = require('./models');
var User = models.User;
Entity --由model创建的实体,使用save方法保存数据,model和entity都有对数据库操作的功能,但model对entity更具有操作性

保存的动作

 var user = new User({
        username:username,
        name:"",
        password:password,
        mobile:mobile,
        cardTye:"",
        cardId:"",
        email:"",
    });

    user.save(function (err,data) {
        if(err){
            res.send({success:0});
        }else{
            res.send({success:1});
        }
    })

});
第一个返回的是保存是否出错 第二个返回的是保存后影响到的值

查询动作

obj.find(查询条件,callback);
Model.find({},function(error,docs){
   //若没有向find传递参数,默认的是显示所有文档
});
 
 User.find({username:username,password:password}).exec(function (err,data) {
      console.log(data);
      if(err){
          res.send({success:0});
      }else if(data.length == 0)
          res.send({success:0});
      else
          res.send({success:1,data:data});

  })

});
findOne操作,只查询一条数据

findById

与findOne相同,但它只接收文档的_id作为参数,返回单个文档。

单条数据 findById(_id, callback);



跟新数据

obj.update(查询条件,更新对象,callback);
删除数据也相同

.remove(conditions,function(error){
})

大于 等于 小于操作 和在mongodb中的操作一样 $gt:大于等于 $lt:小于鞥与

对返回的结果数量进行限制

find(condition,fields,options.callback)

Model.find({},null,{limit:20},function(err,docs){
    console.log(docs);
});

排序方法

model.find({},null,sort{:{age:1}},function(err,doc){
})

schema也可以添加属性值;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值