Node.Js使用mongoose操作mongodb基础操作

一、安装mongoose

npm install mongoose

二、连接数据库

// app.js
var mongoose = require('mongoose');            
mongoose.connect('mongodb://localhost/blog')     //连接本地数据库blog 

三、创建集合

// models/users.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

// 声明一个数据集 对象
var userSchema = new Schema({
    username: {
        type: String,
        unique: true
    }
});
module.exports = mongoose.model('users', userSchema);

集合的常用字段

var schema3 = new Schema({
  test: {
    type: String,
    lowercase: true, // 总是将test的值转化为小写
    uppercase: true, // 总是将test的值转化为大写
    required:true, //设定是否必填
    default:'star', //设定默认值
    index:true, //设定索引值
    unique:true, //索引值唯一
    sparse:true, //是否启用稀疏索引
    match:RegExp, //判断是否通过正则验证
    enum:Array, //判断test值是否包含于enmu对应的数组中
    min:Number, //判断对应值是否大于等于给定值
    max:Number, //判断对应值是否小于等于给定值
    trim:true //去除数据前后的空格
    capped:1024 //限定大小最大为1024字节
    validate:function,为此属性添加一个验证器函数,如demo1所示
    getfunction//为这个属性定义一个定制的getter Object.defineProperty()。如demo2所示
    setfunction//定义此属性的自定义设置Object.defineProperty()。如demo2所示
  }
});

四、数据操作
var userModel = require("./user.js");

1、增加数据

//增加数据
userModel.create(userDate, (err, data) => {
   if (err) {
       console.log('保存失败');
   } else {
       console.log('保存成功');
   }
});
//可同时添加多条数据
userModel.insertMany([userDate1, userDate2], (err, data) => {
   if (err) {
       console.log('保存失败');
   } else {
       console.log('保存成功');
       console.info(data);
   }
});

2、删除数据

userModel.remove({'username' : 'Tracy McGrady'}, function(err, data){
    if (err) {
        console.log('删除失败');
    }
    else {
        console.log('删除成功');
    }
})
//传入多条id,删除多条数据
userModel.remove({ _id: { $in: ['aID', 'bID'] } });

3、更新数据

//前面是查询条件,后面是修改为什么数据
//修改一条后停止
userModel.updateOne({'username' : 'Tracy McGrady'}, {'userpwd': 'zzzz'}, function(err, res){
    if (err) {
        console.log("Error:" + err);
    }
    else {
        console.log("Res:" + res);
    }
})

//修改所有的此数据
userModel.updateMany({'username' : 'Tracy McGrady'}, {'userpwd': 'zzzz'}, function(err, res){
    if (err) {
        console.log("Error:" + err);
    }
    else {
        console.log("Res:" + res);
    }
})

4、查询数据

userModel.find({'username' : 'Tracy McGrady'}, function(err, res){
    if (err) {
        console.log("Error:" + err);
    }
    else {
        console.log("Res:" + res);
    }
})

//查找一条后停止查询
userModel.findOne({'username' : 'Tracy McGrady'}

//按照_id对数据进行排序
userModel.find({'username' : 'Tracy McGrady'}).sort({'_id': '-1'}).exec(function (err, data) {
	if (err) throw err; 
})

//对范围进行查询,例如日期
const start = new Date(2018, 3, 1);
const end = new Date(2018, 4, 1);
userModel.find({'created_on': {$gte: start, $lt: end}}

//传入同一数据的多个值,查询多条数据
userModel.find({ _id: { $in: ['aID', 'bID'] } });
//条件查询
$or 或关系
$nor 或关系取反
$gt 大于
$gte 大于等于
$lt 小于
$lte 小于等于
$ne 不等于
$in 在多个值范围内
$nin 不在多个值范围内
$all 匹配数组中多个值
$regex 正则,用于模糊查询
$size 匹配数组大小
$maxDistance 范围查询,距离(基于LBS)
$mod     取模运算
$near 邻域查询,查询附近的位置(基于LBS)
$exists 字段是否存在
$elemMatch 匹配内数组内的元素
$within 范围查询(基于LBS)
$box 范围查询,矩形范围(基于LBS)
$center 范围醒询,圆形范围(基于LBS)
$centerSphere 范围查询,球形范围(基于LBS)
$slice 查询字段集合中的元素(比如从第几个之后,第N到第M个元素
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值