/** * Construct a new instance. * * @param filter a document describing the query filter, which may not be null. * @param replacement the replacement document */ public ReplaceOneModel(final Bson filter, final T replacement) { this(filter, replacement, new ReplaceOptions()); }
@Override public UpdateResult replaceOne(final Bson filter, final TDocument replacement) { return replaceOne(filter, replacement, new ReplaceOptions()); }
@Override public UpdateResult replaceOne(final ClientSession clientSession, final Bson filter, final TDocument replacement) { return replaceOne(clientSession, filter, replacement, new ReplaceOptions()); }
protected Mono<Object> saveDocument(String collectionName, Document document, Class<?> entityClass) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Saving Document containing fields: " + document.keySet()); } return createMono(collectionName, collection -> { MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.SAVE, collectionName, entityClass, document, null); WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction); MappedDocument mapped = MappedDocument.of(document); MongoCollection<Document> collectionToUse = writeConcernToUse == null // ? collection // : collection.withWriteConcern(writeConcernToUse); Publisher<?> publisher = !mapped.hasId() // ? collectionToUse.insertOne(document) // : collectionToUse.replaceOne(mapped.getIdFilter(), document, new ReplaceOptions().upsert(true)); return Mono.from(publisher).map(o -> mapped.getId()); }); }
/** * Creates replace options from updateOptions. * * @param updateOptions the updateOptions * @return replace options */ public static ReplaceOptions createReplaceOptions(final UpdateOptions updateOptions) { notNull("updateOptions", updateOptions); List<? extends Bson> arrayFilters = updateOptions.getArrayFilters(); isTrue("ArrayFilters should be empty.", arrayFilters == null || arrayFilters.isEmpty()); return new ReplaceOptions() .bypassDocumentValidation(updateOptions.getBypassDocumentValidation()) .collation(updateOptions.getCollation()) .upsert(updateOptions.isUpsert()); }
public Object doInCollection(MongoCollection<Document> collection) throws MongoException, DataAccessException { MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.SAVE, collectionName, entityClass, dbDoc, null); WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction); MappedDocument mapped = MappedDocument.of(dbDoc); if (!mapped.hasId()) { if (writeConcernToUse == null) { collection.insertOne(dbDoc); } else { collection.withWriteConcern(writeConcernToUse).insertOne(dbDoc); } } else if (writeConcernToUse == null) { collection.replaceOne(mapped.getIdFilter(), dbDoc, new ReplaceOptions().upsert(true)); } else { collection.withWriteConcern(writeConcernToUse).replaceOne(mapped.getIdFilter(), dbDoc, new ReplaceOptions().upsert(true)); } return mapped.getId(); } });
ReplaceOptions replaceOptions = new ReplaceOptions(); replaceOptions.upsert(updateOptions.isUpsert()); replaceOptions.collation(updateOptions.getCollation());
ReplaceOptions replaceOptions = new ReplaceOptions(); replaceOptions.collation(opts.getCollation()); replaceOptions.upsert(opts.isUpsert());
protected Mono<Object> saveDocument(String collectionName, Document document, Class<?> entityClass) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Saving Document containing fields: " + document.keySet()); } return createMono(collectionName, collection -> { MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.SAVE, collectionName, entityClass, document, null); WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction); MappedDocument mapped = MappedDocument.of(document); MongoCollection<Document> collectionToUse = writeConcernToUse == null // ? collection // : collection.withWriteConcern(writeConcernToUse); Publisher<?> publisher = !mapped.hasId() // ? collectionToUse.insertOne(document) // : collectionToUse.replaceOne(mapped.getIdFilter(), document, new ReplaceOptions().upsert(true)); return Mono.from(publisher).map(o -> mapped.getId()); }); }
public Object doInCollection(MongoCollection<Document> collection) throws MongoException, DataAccessException { MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.SAVE, collectionName, entityClass, dbDoc, null); WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction); MappedDocument mapped = MappedDocument.of(dbDoc); if (!mapped.hasId()) { if (writeConcernToUse == null) { collection.insertOne(dbDoc); } else { collection.withWriteConcern(writeConcernToUse).insertOne(dbDoc); } } else if (writeConcernToUse == null) { collection.replaceOne(mapped.getIdFilter(), dbDoc, new ReplaceOptions().upsert(true)); } else { collection.withWriteConcern(writeConcernToUse).replaceOne(mapped.getIdFilter(), dbDoc, new ReplaceOptions().upsert(true)); } return mapped.getId(); } });
/** * Construct a new instance. * * @param filter a document describing the query filter, which may not be null. * @param replacement the replacement document */ public ReplaceOneModel(final Bson filter, final T replacement) { this(filter, replacement, new ReplaceOptions()); }
ReplaceOptions replaceOptions = new ReplaceOptions(); replaceOptions.upsert(updateOptions.isUpsert()); replaceOptions.collation(updateOptions.getCollation());
ReplaceOptions replaceOptions = new ReplaceOptions(); replaceOptions.collation(opts.getCollation()); replaceOptions.upsert(opts.isUpsert());
@Override public UpdateResult replaceOne(final Bson filter, final TDocument replacement) { return replaceOne(filter, replacement, new ReplaceOptions()); }
@Override public UpdateResult replaceOne(final Bson filter, final TDocument replacement) { return replaceOne(filter, replacement, new ReplaceOptions()); }
@Override public Publisher<UpdateResult> replaceOne(final ClientSession clientSession, final Bson filter, final TDocument replacement) { return replaceOne(clientSession, filter, replacement, new ReplaceOptions()); }
@Override public UpdateResult replaceOne(final ClientSession clientSession, final Bson filter, final TDocument replacement) { return replaceOne(clientSession, filter, replacement, new ReplaceOptions()); }
@Override public Publisher<UpdateResult> replaceOne(final Bson filter, final TDocument replacement) { return replaceOne(filter, replacement, new ReplaceOptions()); }
@Override public UpdateResult replaceOne(final ClientSession clientSession, final Bson filter, final TDocument replacement) { return replaceOne(clientSession, filter, replacement, new ReplaceOptions()); }
public V createOrUpdate(final V value, final long maxTime, final TimeUnit timeUnit) { final Document doc = encode(value); collectionWithWriteTimeout(maxTime, timeUnit) .replaceOne(byId(keyOf(value)), doc, new ReplaceOptions().upsert(true)); return decode(doc); }