Ich versuche, ein Array im Dokument zu aktualisieren, indem Sie Objekt hinzufügen, wenn es nicht existiert, und das Objekt im Array andernfalls ersetzen. Aber nichts ($ push, $ addToSet) mit Ausnahme des $ set-Parameters tut irgendetwas, und $ set arbeitet wie erwartet - überschreibt das gesamte Array. Mein Mungo Schema:Mongoose: Aktualisierungsarray im Dokument funktioniert nicht
var cartSchema = mongoose.Schema({
mail: String,
items: Array
});
Der Post-Request-Handler:
app.post('/addToCart', function(req, res) {
var request = req.body;
Cart.findOneAndUpdate({
"mail": request.mail
}, {
$addToSet: {
"items": request.item
}
}, {
upsert: true
},
function(err, result) {
console.log(result);
}
);
res.send(true);
});
Die Daten, die ich vom Client bin das Senden:
{
"mail":"[email protected]",
"item":{
"_id":"59da78db7e9e0433280578ec",
"manufacturer":"Schecter",
"referenceNo":"Daemon-412",
"type":"Gitare",
"image":"images/ba9727909d6c3c26412341907e7e12041507489988265.jpeg",
"__v":0,
"subcategories":[
"Elektricne"
]
}
}
EDIT:
Ich habe auch dieses Protokoll, wenn ich ‚addToCart‘ Anfrage auslösen:
{ MongoError: The field 'items' must be an array but is of type object in
document {_id: ObjectId('5a19ae2884d236048c8c91e2')}
Was ist der Inhalt von 'item'? –
Das Json-Objekt am unteren Rand des ursprünglichen Beitrags – bltzrrr
siehe das Update. –