好的,所以我正在尝试使用Mongoose更新子文档(嵌入文档)。我有:
query =
'fanclubs.fanclub_id': fanclub_id
fan_update =
'fanclubs.$.fanclub_name': fanclub_data.fanclub_name
Fan.update query, fan_update, (err, numAffected) ->
console.log err
console.log numAffected
似乎没有使用新Fan
实际更新fanclub_name
对象。想法?
我想更新fanclub_name
字段
编辑我的Fan
架构
mongoose = require "mongoose"
{FanClubMemberSchema} = require './schemas/fanClubMemberSchema'
validation = require './validation'
FanSchema = new mongoose.Schema(
first_name:
type: String
trim: true
required: true
last_name:
type: String
trim: true
required: true
fullname:
type: String
trim: true
required: true
email:
type: String
lowercase: true
unique: true
required: true
validate: [validation.email, 'Email is invalid']
fanclubs:
type: [FanClubMemberSchema]
required: false
added_on:
type: Date
default: Date.now
required: true
)
FanClubMemberSchema
mongoose = require "mongoose"
FanClubMemberSchema = new mongoose.Schema
fanclub_id:
type: String
trim: true
required: true
fanclub_name:
type: String
trim: true
required: true
fanclub_image:
type: String
trim:true
required:true
access:
type: String
trim: true
required: true
joinedOn:
type: Date
default: Date.now
required: true
exports.FanClubMemberSchema = FanClubMemberSchema
答案 0 :(得分:3)
默认情况下,update
操作只会更新它匹配的第一个文档。因此,这只会更新包含fanclubs
的第一个粉丝的fanclub_id
数据。所以我认为它可能有效,但你没有检查更新的fan
文档。
要更新所有粉丝的数据,您需要启用multi
选项:
Fan.update query, fan_update, { multi: true }, (err, numAffected) ->
console.log err
console.log numAffected