2012-11-07 2 views
0

좋아, 그래서 몽구스로 하위 문서 (임베디드 문서)를 업데이트하려고하고있다. 내가 가진 : 몽구스로 하위 문서 업데이트하기

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 

실제로 새로운 fanclub_name으로 Fan 개체를 업데이트하지 않는 것 같습니다. 아이디어?

내가 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

당신이 오류를 얻고있다 :

모든 팬들의 데이터를 업데이트하려면 당신은 multi 옵션을 활성화해야합니까? 그들은 무엇인가? – coryj

+0

오류가 없습니다. 하나의 문서가 영향을 받았지만'오류가 없습니다 '라고 말합니다. – Shamoon

+0

비슷한 문제가 있습니다. –

답변

3

기본적으로 update 작업은 첫 번째 문서를 업데이트합니다 그것 atches. 따라서 첫 번째 팬의 fanclubs 데이터에 fanclub_id이 포함 된 데이터 만 업데이트됩니다. 그래서 아마도 작동하고 있다고 생각하지만 업데이트 된 문서 fan을 확인하고 있지 않습니다.

Fan.update query, fan_update, { multi: true }, (err, numAffected) -> 
    console.log err 
    console.log numAffected 
관련 문제