SyncMongoCollection¶
interface SyncMongoCollection<Document : Any> : MongoCollection<Document>
A collection stores related documents together.
The Coroutine client provides a coroutine-aware API which internally uses the official Kotlin driver.
Usually, all documents in a collection have the same shape (the same fields). However, heterogeneous structure can be achieved by using:
-
Kotlin collections, like
ListandSet, the embed an arbitrary number of items. -
Polymorphism, for example with
sealed class, to have different fields based on a discriminator.
To avoid name collisions, collections are grouped into MongoDatabase.
To obtain a collection, see MongoDatabase.collection.
Size limit¶
A MongoDB document cannot exceed 16 MiB.
You can measure the size of a document with opensavvy.ktmongo.bson.BsonDocument.toByteArray followed by ByteArray.size.
The maximum nesting is 100 levels. Each document or array adds a level.
External resources¶
See also¶
- asKtMongoLegacy: Convert an existing instance from the official Kotlin driver.
Types¶
UpsertResult¶
interface UpsertResult : UpdateOperations.UpsertResult
The return value of upsertOne and upsertOneWithPipeline.
Properties¶
context¶
@LowLevelApi
abstract val context: BsonContext
factory¶
abstract override val factory: BsonFactory
fullyQualifiedName¶
abstract val fullyQualifiedName: String
name¶
objectIdGenerator¶
abstract val objectIdGenerator: ObjectIdGenerator
propertyNameStrategy¶
abstract val propertyNameStrategy: PropertyNameStrategy
type¶
@LowLevelApi
abstract val type: KType
Functions¶
aggregate¶
abstract override fun aggregate(): SyncMongoAggregationPipeline<Document>
asOfficial¶
abstract fun asOfficial(): MongoCollection<Document>
Obtains the underlying MongoDB collection from the official Kotlin driver.
bulkWrite¶
abstract fun bulkWrite(
options: BulkWriteOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
operations: BulkWrite<Document>.() -> Unit
)
count¶
abstract fun count(options: CountOptions<Document>.() -> Unit, predicate: FilterQuery<Document>.() -> Unit): Long
countEstimated¶
abstract fun countEstimated(): Long
deleteMany¶
abstract fun deleteMany(options: DeleteManyOptions<Document>.() -> Unit, filter: FilterQuery<Document>.() -> Unit)
deleteOne¶
abstract fun deleteOne(options: DeleteOneOptions<Document>.() -> Unit, filter: FilterQuery<Document>.() -> Unit)
drop¶
abstract fun drop(options: DropOptions<Document>.() -> Unit)
exists¶
open fun exists(options: CountOptions<Document>.() -> Unit, predicate: FilterQuery<Document>.() -> Unit): Boolean
filter¶
abstract override fun filter(filter: FilterQuery<Document>.() -> Unit): SyncMongoCollection<Document>
find¶
abstract override fun find(): SyncMongoFindIterable<Document>
abstract override fun find(options: FindOptions<Document>.() -> Unit, filter: FilterQuery<Document>.() -> Unit): SyncMongoFindIterable<Document>
findOne¶
open fun findOne(options: FindOptions<Document>.() -> Unit, filter: FilterQuery<Document>.() -> Unit): Document?
findOneAndUpdate¶
abstract fun findOneAndUpdate(
options: UpdateOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
update: UpdateQuery<Document>.() -> Unit
): Document?
insertMany¶
abstract fun insertMany(documents: Iterable<Document>, options: InsertManyOptions<Document>.() -> Unit)
open fun insertMany(vararg documents: Document, options: InsertManyOptions<Document>.() -> Unit)
insertOne¶
abstract fun insertOne(document: Document, options: InsertOneOptions<Document>.() -> Unit)
newId¶
replaceOne¶
abstract fun replaceOne(
options: ReplaceOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
document: Document
)
repsertOne¶
abstract fun repsertOne(
options: ReplaceOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
document: Document
)
updateMany¶
@IgnorableReturnValue
abstract fun updateMany(
options: UpdateOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
update: UpdateQuery<Document>.() -> Unit
): UpdateOperations.UpdateResult
updateManyWithPipeline¶
@IgnorableReturnValue
abstract fun updateManyWithPipeline(
options: UpdateOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
update: UpdateWithPipelineQuery<Document>.() -> Unit
): UpdateOperations.UpdateResult
updateOne¶
@IgnorableReturnValue
abstract fun updateOne(
options: UpdateOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
update: UpdateQuery<Document>.() -> Unit
): UpdateOperations.UpdateResult
updateOneWithPipeline¶
@IgnorableReturnValue
abstract fun updateOneWithPipeline(
options: UpdateOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
update: UpdateWithPipelineQuery<Document>.() -> Unit
): UpdateOperations.UpdateResult
upsertOne¶
@IgnorableReturnValue
abstract override fun upsertOne(
options: UpdateOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
update: UpsertQuery<Document>.() -> Unit
): SyncMongoCollection.UpsertResult
upsertOneWithPipeline¶
@IgnorableReturnValue
abstract override fun upsertOneWithPipeline(
options: UpdateOptions<Document>.() -> Unit,
filter: FilterQuery<Document>.() -> Unit,
update: UpdateWithPipelineQuery<Document>.() -> Unit
): SyncMongoCollection.UpsertResult