[NodeJS] Mongoose ref关联删除数据

本文档介绍了在NodeJS环境下,利用Mongoose的ref特性进行关联删除数据的操作。通过Model.update方法,配合$pull字段,实现删除关联记录。文中提供了一个具体的模型定义、存储测试数据的示例以及删除和查询结果的展示,说明了如何有效地从数据库中删除关联的数据。
摘要由CSDN通过智能技术生成

环境

  • Node: v7.0.0
  • Bluebird: v3.4.6
  • Mongoose: v4.6.8

参考文档

ECMAScript 6 入门 —— Promise对象, 阮一峰
Mongoose 之 Population 使用, aikin
Mongoose API v4.7.2

语句

Model.update(conditions, {$pull: {field: value}}, [options], [callback])

若想要同时更新多个匹配的User,则要在 [option] 处添加参数,{multi: true}

Model.update 的具体使用方法详见Mongoose 帮助文档

样例

Model

存放在了 model.js 中。

var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');

var Schema = mongoose.Schema;
var userSchema = new Schema({
  name: String,
  age: Number,
  posts: [{type: Schema.Types.ObjectId, ref: 'post'}],
  comments: [{type: Schema.Types.ObjectId, ref: 'comment'}]
});
var User = mongoose.model('user', userSchema);

var postSchema = new Schema({
  title: String,
  content: String,
  author: {type: Schema.Types.ObjectId, ref: 'user'},
  comments: [{type: Schema.Types.ObjectId, ref: 'comment'}]
});
var Post = mongoose.model('post', postSchema);

var commentSchema = new Schema({
  content: String,
  author: {type: Schema.Types.ObjectId, ref: 'user'}
})
var Comment = mongoose.model('comment', commentSchema);

exports.User = User;
exports.Post = Post;
exp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值