Mam dokument dziennie na metr. Jak dodać kolejny dokument podrzędny do tablicy danych i utworzyć cały dokument, jeśli nie istnieje?Mongodb upsert embedded document
{ "key": "20120418_123456789", "data":[ { "Meter": 123456789, "Dt": ISODate("2011-12-29T16:00:00.0Z"), "Energy": 25, "PMin": 11, "PMax": 16 } ], "config": {"someparam": 4.5} }
Czy mogę użyć upsert w tym celu?
Wynik będzie, jeśli dokument istnieje:
{ "key": "20120418_123456789", "data":[ { "Meter": 123456789, "Dt": ISODate("2011-12-29T16:00:00.0Z"), "Energy": 25, "PMin": 11, "PMax": 16 }, { "Meter": 123456789, "Dt": ISODate("2011-12-29T16:15:00.0Z"), "Energy": 22, "PMin": 13, "PMax": 17 } ], "config": {"someparam": 4.5} }
góry dzięki
będę musiał zrobić 400000 addToSet dziennie ... 96 dane na dokumencie. Wydaje się być powolny ... Czy istnieją inne sposoby, aby to zrobić? – hotips
jak już wspomniano, będziesz wywoływał wiele ruchów, zwiększając w ten sposób tablicę wartości - która spowoduje spowolnienie, chyba że w jakiś sposób związasz tablicę i możesz przewidzieć jej maksymalny rozmiar - wtedy możesz ją odpowiednio umieścić i aktualizacje byłyby znacznie szybsze. Jeśli nie możesz tego zrobić, być może powinieneś rozważyć inny schemat i mieć dane w innej kolekcji, a nie jako osadzoną tablicę. –