2010-12-14 21 views
9

Czy można aktualizować zbiorczo/upsert (nie wstawiać) w MongoDB?Aktualizacja zbiorcza/upsert w MongoDB?

Jeśli tak, proszę wskazać mi jakieś dokumenty związane z tym tematem?

Dzięki

+0

To nie jest jeszcze możliwe: patrz https://jira.mongodb.org/browse/SERVER-4004 –

Odpowiedz

4

Można użyć programu wiersza poleceń mongoimport powinno być w MongoDB bin dir ...

Istnieją dwie opcje będziesz chciał zajrzeć do korzystania upsert ...

--upsert wkładka lub obiekty aktualizacyjne, które już istnieją
--upsertFields arg Comm wyodrębnione pola dla zapytania: część upsertu . Należy upewnić się, że jest indeksowana

Więcej informacji tutaj: http://www.mongodb.org/display/DOCS/Import+Export+Tools

lub po prostu zrobić ...

$ mongoimport --help 
+0

Uwaga: obecnie --upsert nie jest udokumentowane w dokumentach online (trzeba je zaktualizować) ... ale zobaczysz je z linii poleceń --help. –

1

Aktualizacje zbiorcze mogą być również wykonane w partii, jak znaleźć w dokumentacji:

MongoDB Bulk Methods

Używam ich do importowania plików CSV, które ja przed zaimportowaniem danych trzeba trochę pomasować. Trochę powolne, gdy zajmowałem się aktualizacjami, ale robiło to moje aktualizacje o 50 KB w około 83 sekundy, co jest znacznie wolniejsze od polecenia mongoimport.

1

Mongo może wykonać plik .js. możesz naciskać wszystkie polecenia aktualizacji w pliku js.

t.js

db.record.update({md5:"a35f10a8339ab678612d1f86be08b81a"},{$set:{algres:[]}},false,true); 
db.record.update({md5:"a35f10a8339ab678612d1f86be08b81b"},{$set:{algres:[]}},false,true); 

Następnie mongo 127.0.0.1/test t.js

Powiązane problemy