Nodejs-mongodb,mongoose的CRUD

本文详细介绍Node.js结合Mongoose操作MongoDB的CRUD过程,包括数据库连接、文档结构设计、数据增删改查等核心操作,是Node.js后端开发者的实用指南。

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

Nodejs-mongodb,mongoose的CRUD

前言

官方案例
var mongoose = require('mongoose');//官方案例
var Schema = mongoose.Schema;
var blogSchema = new Schema({
  title:  String,
  author: String,
  body:   String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
});
小栗子
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库 
//指定链接的的数据库不需要存在,当你插入第一条数据后就会被自动创建出来
mongoose.connect('mongodb://localhost:27017/itcast');

//设计文档结构(表结构)
var userSchema = new Schema({
    username: {
        type: String,
        require: true //表示必须有 
    },
    password: {
        type: String,
        require: true
    },
    email: {
        type: String
    }
})
  • 将文档结构发布为模型

    • mongoose.model() 是用来讲一个架构发布为model的

    • 第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称,mongoose会自动将大写单数名词字符串

    • 生成 小写复数 的集合名称 例如这里的 User => users集合名称

    • 第二个参数:架构的名称

    • 返回值 模型构造函数

    var User = mongoose.model(‘User’, userSchema)

  • 增加数据

    • 先new 一个数据对象
    • 使用模型.save()添加
	var admin = new User({
	    username: 'zx',
	    password: '321',
	    email: 'zx@ad.com'
	})
	admin.save(function(err,ret) {
	    if (err) {
	        console.log('保存失败');
	    } else {
	        console.log('保存成功');
	        console.log(ret);
	    }
	})
  • 查询
		User.find(function (err,ret) { //查询所有
		    if (err) {
		        console.log('查询失败');
		    } else {
		        console.log(ret)
		    }
		})
		
		User.find({ //按条件查询  第一个参数 放入一个 对象 "条件" 即可
		        username: 'zx'
		    },
		    function (err, ret) {
		        if (err) {
		            console.log('查询失败');
		        } else {
		            console.log(ret)
		        }
		    })
		ps :find() 无论 怎样都会返回一个数组
		
		User.findOne({ //插入条件后 只会返回一个对象,如果没有条件默认返回第一条数据
		    username: 'zx'
		    },
		    function (err,ret) {
		        if (err) {
		            console.log('查询失败');
		        } else {
		            console.log(ret);
		        }
		    }
		)
  • 更新数据
User.findByIdAndUpdate(
    '5c2f01c67677e410308a223a', {
        username: 'updata后的admin',
        password: '666666'
    },
    function (err, ret) {
        if (err) {
            console.log('更新失败');
        } else {
            console.log('更新成功');
            console.log(ret);// 这里是返回更新前的对象内容
        }
    }
)
  • 删除数据
User.remove({
        username: 'zx'
    },
    function (err, ret) {
        if (err) {
            console.log('失败');
        } else {
            console.log('成功');
            console.log(ret);
        }
    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值