MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB - kopiuj kolekcję w Javie bez zapętlania wszystkich elementów

W MongoDB 2.6 dodano operator agregacji $out, który zapisuje wyniki agregacji w kolekcji. Zapewnia to prosty sposób wykonania kopii po stronie serwera wszystkich elementów kolekcji do innej kolekcji w tej samej bazie danych za pomocą sterownika Java (użyłem sterownika Java w wersji 2.12.0):

// set up pipeline
List<DBObject> ops = new ArrayList<DBObject>();
ops.add(new BasicDBObject("$out", "target")); // writes to collection "target"

// run it
MongoClient client = new MongoClient("host");
DBCollection source = client.getDB("db").getCollection("source")
source.aggregate(ops);

Wersja jednowierszowa:

source.aggregate(Arrays.asList((DBObject)new BasicDBObject("$out", "target")));

Zgodnie z dokumentacją, w przypadku dużych zbiorów danych (>100 MB) możesz chcieć użyć opcji allowDiskUse (Ograniczenia pamięci agregacji), chociaż nie osiągnąłem tego limitu, gdy uruchomiłem go na kolekcji> 2 GB, więc może nie mieć zastosowania do tego konkretnego rurociągu, przynajmniej w 2.6.0.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Łączenie się z MongoDB przez SSL za pomocą Node.js

  2. Wybierz dokumenty, w których wszystkie wartości w polu tablicy istnieją w innej tablicy

  3. MongoDB Znajdź dokładne dopasowanie tablicy, ale kolejność nie ma znaczenia

  4. O MongoDB

  5. MongoDB przy użyciu klauzuli OR w mongoengine