Я новичок в rethinkdb, я пытаюсь написать запрос на обновление предпочтительного upsert, который установит значения для нескольких полей, если они не существуют или их значения меньше, чем новое значение, которое я хочу устанавливать. Ниже, как я сделал это с MongoDBОкончательное обновление нескольких полей
collection.updateOne(new BasicDBObject(BookKeeperEvent.tenantPropertyName, bookKeeper.getTenantId()).append(BookKeeperEvent.timeLayerPropertyName, bookKeeper.getTimeLayer()),
new BasicDBObject("$max", new BasicDBObject(BookKeeperEvent.latestFullDataPropertyName, bookKeeper.getLatestFullData())
.append(BookKeeperEvent.latestRawDataPropertyName, bookKeeper.getLatestRawData())
.append(BookKeeperEvent.latestHealthPropertyName, bookKeeper.getLatestHealth())
.append(BookKeeperEvent.lastUpdatePropertyName, bookKeeper.getLastUpdate())
.append(BookKeeperEvent.firstFullDataPropertyName, bookKeeper.getFirstFullData()))
.append("$setOnInsert", new BasicDBObject(BookKeeperEvent.tenantPropertyName, bookKeeper.getTenantId()).append(BookKeeperEvent.timeLayerPropertyName, bookKeeper.getTimeLayer())),
new UpdateOptions().upsert(true))
Этот код устанавливается tenantId и timeLayer только если они равны нулю, и для других полей, только если они равны нулю или значение меньше, чем значение, я поставил в запрос. Есть ли способ сделать то же самое в rethinkdb? и как?
Спасибо, Daniela
Я думаю, что следующий запрос эквивалентен тому, что я сделал в Монго, но терпит неудачу. – Daniela