/** * Deletes and returns first matching document. Returns {@link Optional#absent()} if none * documents matches. * @return future of optional matching deleted document. */ public FluentFuture<Optional<T>> deleteFirst() { checkState(numberToSkip == 0, "Cannot use .skip() with .deleteFirst()"); FindOneAndDeleteOptions options = new FindOneAndDeleteOptions(); options.sort(convertToBson(ordering)); return repository.doFindOneAndDelete(criteria, options); }
private static FindOneAndDeleteOptions convertToFindOneAndDeleteOptions(Document fields, Document sort) { FindOneAndDeleteOptions result = new FindOneAndDeleteOptions(); result = result.projection(fields).sort(sort); return result; }
public Document doInCollection(MongoCollection<Document> collection) throws MongoException, DataAccessException { FindOneAndDeleteOptions opts = new FindOneAndDeleteOptions().sort(sort).projection(fields); collation.map(Collation::toMongoCollation).ifPresent(opts::collation); return collection.findOneAndDelete(query, opts); } }
private static FindOneAndDeleteOptions convertToFindOneAndDeleteOptions(Document fields, Document sort) { FindOneAndDeleteOptions result = new FindOneAndDeleteOptions(); result = result.projection(fields).sort(sort); return result; }
public Document doInCollection(MongoCollection<Document> collection) throws MongoException, DataAccessException { FindOneAndDeleteOptions opts = new FindOneAndDeleteOptions().sort(sort).projection(fields); collation.map(Collation::toMongoCollation).ifPresent(opts::collation); return collection.findOneAndDelete(query, opts); } }
/** * Deletes and returns first matching document. Returns {@link Optional#absent()} if none * documents matches. * @return future of optional matching deleted document. */ public FluentFuture<Optional<T>> deleteFirst() { checkState(numberToSkip == 0, "Cannot use .skip() with .deleteFirst()"); FindOneAndDeleteOptions options = new FindOneAndDeleteOptions(); options.sort(convertToBson(ordering)); return repository.doFindOneAndDelete(criteria, options); }
theOne = collection.findOneAndDelete( query, new FindOneAndDeleteOptions().sort( sort ) .projection( fields ) .maxTime( 0, TimeUnit.MILLISECONDS )
theOne = collection.findOneAndDelete( query, new FindOneAndDeleteOptions().sort( sort ) .projection( fields ) .maxTime( 0, TimeUnit.MILLISECONDS )