mongoose 简单用法

本文介绍Mongoose在Node.js中如何定义Schema、创建Model及Entity,并演示了基本的CRUD操作。

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

schema model entity

  • schema 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力,但是这是必须的,就类似 申明你的数据库对应表的结构 有哪些字段 ,每一个字段的属性 是否唯一等等。
  • model 由Schema发布生成的模型,具有抽象属性和行为的数据库操作,通过model模型 对对应的表进行增删查改等操作。
  • entity 由Model创建的实体,他的操作也会影响数据库 (同model)
/**
 * Created by Administrator on 2017/5/3.
 */

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var config = require('../config/default');
mongoose.connect(config.mongodb);
var db = mongoose.connection;

db.on('error', function (err) {
    console.log('connect error');
});
// db.once('open',function () {
//     console.log('connect success !');
//
// });
db.on('open', function (cb) {
    console.log('connect success !');

});

//Schema 结构

var userSchema = new Schema({
    name: String,
    password: String,
    nickname: {type: String, default: 'shop'},
    date: {type: Date, default: Date.now},
});

//得到用户model 对应的是mongodb里面的数据库shop里面的users表结构
var userModel = mongoose.model('users', userSchema);

//entity
var user = {
    name:'testName1',
    password:'123456789000000',
};

//根据实际数据新建一个实体类 这个类也可以进行对应表的所有操作 增删查改
//一般不这么用
var userEntity = new userModel(user);

// userEntity.save(function (err) {
//     if(err){
//         console.log(err)
//     }else{
//         console.log("save success");
//     }
//     db.close();
// });
// 异步执行 find 先于 save执行完毕

userModel.find(function (err,arr) {
   console.log(arr);
});
// 即使 在相同条件下 依旧返回最开始的一条数据
userModel.findOne({name:'testName'},function (err,user) {
    console.log(user);
});

var conditions = {name:'testName'};
var update     = {$set : {nickname : 'shop_update'}};

userModel.update(conditions,update,{upsert:true,overwrite:true,multi:true},function (err,num,rawnum) {
    if(err){
        console.log(err);
    }else{
        console.log("update ok");
    }
    console.log(rawnum);//受影响的行数
    db.close();
});

//基于model的增删查改
userModel.create(user,function (err) {
    if(err){
        console.log('create fail : '+err);
    }else{
        console.log('create user success');
    }

});

// 删除 操作 删除所有符合条件的文件
userModel.remove({name:"testName"},function (err) {
    if(err){
        console.log(err);
    }else{
        console.log("update ok");
    }
});


 exports = mongoose.model('users',userSchema);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值