在Mongodb中,我如何检查嵌入文档中的重复项

时间:2013-02-11 06:11:17

标签: mongodb

我对mongodb很新,我想知道何时添加嵌入式文档,如果有办法我只能检查person_Id而不是活动字段。我只关心person_id不是重复的

    collection.update({'_id':new BSON.ObjectID(business_id)}, {$addToSet: {members : {person_Id : person_id, active : true }}}, {safe:true}, function(err, result) {
        if (err) {
            console.log('Error updating person: ' + err);
        } else {
            console.log('' + result + ' document(s) updated');
            callback(result);
        }
    });

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,那么答案是肯定的。您可以在查询中添加您的成员不应包含具有该特定person_id的成员的条件:

update({'_id':new BSON.ObjectID(business_id), 'members.person_id':{$ne:person_id}}, {$push: {members : {person_Id : person_id, active : true }}}

如果且仅当business_id匹配并且members数组不包含person_id成员时,这会将新成员记录推送到您的成员数组中。请注意,此方法与upserts互斥。