Я использую весеннюю загрузку в версии 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/
Есть ли шанс сделать то же самое с помощью пружинного башмака?