2016-10-13 3 views
0

とサブサブ文書の項目を追加します。は、私は、次の文書構造を持っているとマングースを使用して、サブサブドキュメントに追加する必要がマングース

var organization = module.exports = mongoose.Schema({ 
    teams: [{ 
       permissions: [{ permission: String }] 
    }] 
}) 

organization.methods.addTeam = function(team){ 
    //the save occurs in a repository layer later on, for now I am just prepping the object for the save 
     this.teams.push(team); 
     var subdoc = this.teams[0]; 
     subdoc.isNew; 
} 

//Ideally, something like this would be great but I have not been able to find any doc that really provides a good example on this scenario 
organization.methods.addPermission = function(id(team), permission){ 
    var teams = this.teams.id(id) 
    teams.permissions.push(permission); 
    var subsubdoc = teams.permission[0]; 
    subsubdoc.isNew; 
} 

私はNode.jsのとMongoDBのに初心者ですとに実行していますサブサブ文書の問題に続きます。次の例では、permissions配列に追加する必要があります。私は、組織のスキーマに関する新しいメソッドを追加して、私が見つけた例に基づいてチームを組織に追加することを処理しました。チームのサブ文書へのアクセス許可の追加を処理するために、組織スキーマに同様のメソッドを追加したいと思います。また、追加する前にパーミッションが既に存在していないことを確認して確認したいと思います。このシナリオはどのように扱うべきですか?

答えて

0

MongoDBの$addToSetオペレータを見てください。

// file: modules/organization/add_permission.js 

var Organization = mongoose.model('Organization'); 

exports.addPermission = function(teamId, permission) { 

    Organization.update(
    {_id: teamId}, // query 
    {$addToSet: {permissions: {permission: permission}}}, // update 
    function(err) { // callback 
     // handle error 
     // other logic 
    } 
); 
}; 

またはあなたのOrganizationマングースモデル上の方法と同様の何かをします。

関連する問題