Ich führe den folgenden Code aus, um ein Filialdokument unter einem vorhandenen Filialdokument zu erstellen. Die grundlegende Struktur ist:Push eine Sammlung zu einem Filialdokument von Index?
Benutzer -> (viele Kommentare) -> (viele Bewertungen).
Das Bewertungsobjekt ist ein grundlegendes JavaScript-Objekt mit der Struktur;
rating: {
userId: "userId",
rating: 4
}
Also, für den Kommentar bei Index [0], ich versuche, eine neue Bewertung mit dem folgenden zu schieben;
db.getCollection('Users').update(
{id: "user123", },
{
$push: {
comments[0].ratings: rating
}
})
Die Rückkehr von der Mongo-Konsole (mit Bewertung auf ein Test-String gesetzt nur von "test"), ist;
Error: Line 5: Unexpected token [
Ich habe versucht, dies zu umgehen, indem Sie Kommas um die Kommentare [0] wickeln;
db.getCollection('Insights').update(
{id: "b5e5bf69-071b-4af2-99b2-5165b47499cb", },
{
$push: {
"comments[0].ratings": "test"
}
})
Dies ist tatsächlich mit Erfolg zurückkehrt;
Updated 1 existing record(s) in 2ms
Allerdings ist das Subdokument haupt nicht angezeigt.
Könnte mir jemand in die richtige Richtung zeigen?
ypou sollte Ihr Benutzersammelschema mit Kommentaren und Bewertungen veröffentlichen; wird für uns einfacher zu verstehen sein. – sergiuz