0

我对 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);
        }
    });
4

1 回答 1

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 匹配并且成员数组不包含具有 person_id 的成员时,这会将新成员记录推送到您的成员数组中。请注意,此方法与 upsert 互斥。

于 2013-02-11T13:56:44.783 回答