Весенние данные mongodb навалом пишут с upsert - ко многим запросам - PullRequest
0 голосов
/ 04 марта 2019

Я использую весеннюю загрузку в версии 2.0.0.RC1 с весенними данными для mongodb.У меня проблема с количеством запросов к базе данных, и я хочу сократить его до одного запроса с помощью массовых операций.

Вот часть моего кода:

List<Pair<Query, Update>> queryWithUpdate = dataToUpdate
                .stream()
                .map(data -> createUpsertOperation(data.getMove(), map))
                .collect(Collectors.toList());
        mongoOperations.bulkOps(BulkOperations.BulkMode.UNORDERED, SomeNew.class)
                .upsert(queryWithUpdate)
                .execute();

Таким образом, каждый запрос имеет свой параметр кактакже как обновление.Наконец, размер списка составляет 96 элементов.Когда я выполнил приведенный выше код в своей среде, я заметил в консоли mongo, что каждый запрос и обновление Pair ofr выполняется в отдельной операции.

[conn111] updateеримент.core.wells.lineage:{location.some: "BBBBB", location.cordinate: "A2"} planSummary: обновление COLLSCAN: {$ addToSet: {lineage: {$ each: [{cordinate: "A02", некоторые: "TEST01"}]}}} keysExamined: 0 docsExamined: 943391 nMatched: 0 nModified: 0 upsert: 1 keysInserted: 1 numYields: 7387 блокировок: {Global: {acquCount: {r: 14772, w: 14772}}, База данных: {acquCount: {w: 14772}}, Collection: {acquCount: {w: 14772}}} 671мс

Однако я могу написать скрипт монго, используя массовую операцию, чтобы сделать то же самое непосредственно в оболочке монго.https://docs.mongodb.com/manual/reference/method/db.collection.bulkWrite/

Есть ли шанс сделать то же самое с помощью пружинного башмака?

...