MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongo $addToSet mit mehreren Werten korrekte Syntax

Sie müssen ein Objekt hinzufügen, um UsersAndQuestions festzulegen:

{$addToSet: {UsersAndQuestions: { userID: idToAdd, questionID: questionToAdd } }}

AKTUALISIEREN.

Ich würde es mit zwei Abfragen tun:

Listing.update({_id: ObjectId(listingToUpdate), 'UsersAndQuestions.userID': idToAdd}, 
    {"$addToSet": {"UsersAndQuestions.$.questionID": questionToAdd}}
    , function (err, result) {
        if(result.n === 0){
            //we haven't found document with the userId - idToAdd
            //we need to insert to UsersAndQuestions document with this user
            Listing.update({_id: ObjectId(listingToUpdate)},
                {$addToSet: {UsersAndQuestions: { userID: idToAdd, questionID: questionToAdd } }}, 
                function(err, res){

                })
        }
})