Ich habe folgendes Schema in MongooseJS:Schieben auf verschachtelte SubDoc Array mit MongooseJS
const ParentChildCommentSchema = new mongoose.Schema({
date: Date,
from: { type:mongoose.Schema.Types.ObjectId, ref:'Parent' },
message: String,
});
const ParentChildSchema = new mongoose.Schema({
child: { type:mongoose.Schema.Types.ObjectId, ref:'Child' },
comments: [ ParentChildCommentSchema ],
});
const ParentSchema = new mongoose.Schema({
name: String,
description: String,
children: [ ParentChildSchema ],
});
Wo Parents
Children
haben, und jede Eltern-/Kind-Beziehung eine Reihe von comments
haben kann.
Ich versuche, ein comment
zu schieben mit
const query = {
"_id": parentId,
"children._id": parentChildId,
};
const update = {
"$push": {
"children.$.comments": {
"date": Date.now(),
"from": parentId,
"message": message,
}
}
};
Pack.findOneAndUpdate(query, update, err => ...)
Die Abfrage keine Fehler zu werfen ist. Aber es wird kein Kommentar hinzugefügt. Was mache ich falsch?
Nicht sicher, ob dies einen großen Unterschied macht, aber ändern Sie "$ push" 'in' $ push' – Derek
Ich denke nicht, dass das einen Unterschied macht. Ich habe eine fast identische Abfrage, $ set ist ein Wert in der ParentChildSchema und es funktioniert gut in Anführungszeichen verpackt. – nicholas
Getestet, aber kein Glück. Immer noch erfolgreich abgeschlossen, aber nicht auf das Array drücken. – nicholas