Próbuję zacząć używać Mongoose jako ODM dla MongoDB z moją aplikacją node.js. Zauważyłem, że kiedy projektuję schemat z osadzonym dokumentem, jeśli nie dodaję do niego wartości, to przechowuję pustą tablicę "[]" w Mongo. Dlaczego to? Próbuję zapisać zmiany historyczne w rekordach, a pusta tablica oznacza, że ta zmiana usunęła wartość. Oto przykładowy schemat.Dlaczego Mongoose dodaje puste tablice?
schema.Client = new mongoose.Schema({
name:{type:String, required:true},
products:[{
name:{type:String, index:true},
startDate:Date,
endDate:Date
}],
subdomain:{type:String, index:{unique:true}},
})
Oto dokument wynikowy, gdy zapisuję dokument z samą nazwą i subdomeną.
{
"name": "Smith Company",
"products": [],
"subdomain": "smith"
}
Dlaczego dodałem produkty z pustą tablicą domyślnie i jak mogę to zatrzymać?
wartość domyślna dla tablicy jest pusta tablica, więc jeśli zapisać tylko {nazwa: „foo”, subdomeny: „bar”} produkcie będzie pustą tablicą. – supernova
Czy istnieje sposób na zmianę domyślnej wartości tablicy, aby nie zapisywała niczego? – wintzer
Czy możesz opublikować kod, w którym aktualizujesz swój dokument? – supernova