y-mongodb-provider
Version:
MongoDB database adapter for Yjs
81 lines • 3.63 kB
TypeScript
export class MongoAdapter {
/**
* Create a MongoAdapter instance.
* @param {string|{client: MongoClient, db: import('mongodb').Db}} dbConnection A MongoDB connection string or an object containing a MongoClient instance (`client`) and a database instance (`db`).
* @param {object} opts
* @param {string} opts.collection Name of the collection where all documents are stored.
* @param {boolean} opts.multipleCollections When set to true, each document gets an own
* collection (instead of all documents stored in the same one).
* When set to true, the option $collection gets ignored.
*/
constructor(dbConnection: string | {
client: MongoClient;
db: import("mongodb").Db;
}, { collection, multipleCollections }: {
collection: string;
multipleCollections: boolean;
});
collection: string;
multipleCollections: boolean;
client: MongoClient;
db: import("mongodb").Db;
/**
* Get the MongoDB collection name for any docName
* @param {import('mongodb').Filter<import('mongodb').Document>} query
* @returns {string} collectionName
*/
_getCollectionName({ docName }: import("mongodb").Filter<import("mongodb").Document>): string;
/**
*
* @param {import('mongodb').Filter<import('mongodb').Document>} query
* @param {{limit?: number; reverse?: boolean;}} [options]
* @returns {Promise<import('mongodb').WithId<import('mongodb').Document>[]>}
*/
find(query: import("mongodb").Filter<import("mongodb").Document>, options?: {
limit?: number;
reverse?: boolean;
}): Promise<import("mongodb").WithId<import("mongodb").Document>[]>;
/**
* Apply a $query and get one document from MongoDB.
* @param {import('mongodb').Filter<import('mongodb').Document>} query
* @param {{limit?: number; reverse?: boolean;}} [options]
* @returns {Promise<import('mongodb').WithId<import('mongodb').Document> | null>}
*/
findOne(query: import("mongodb").Filter<import("mongodb").Document>, options?: {
limit?: number;
reverse?: boolean;
}): Promise<import("mongodb").WithId<import("mongodb").Document> | null>;
/**
* Store one document in MongoDB.
* @param {import('mongodb').Filter<import('mongodb').Document>} query
* @param {import('mongodb').UpdateFilter<import('mongodb').Document>} values
* @returns {Promise<import('mongodb').WithId<import('mongodb').Document> | null>} Stored document
*/
put(query: import("mongodb").Filter<import("mongodb").Document>, values: import("mongodb").UpdateFilter<import("mongodb").Document>): Promise<import("mongodb").WithId<import("mongodb").Document> | null>;
/**
* Removes all documents that fit the $query
* @param {import('mongodb').Filter<import('mongodb').Document>} query
* @returns {Promise<import('mongodb').BulkWriteResult>} Contains status of the operation
*/
delete(query: import("mongodb").Filter<import("mongodb").Document>): Promise<import("mongodb").BulkWriteResult>;
/**
* Close connection to MongoDB instance.
*/
close(): Promise<void>;
/**
* Get all collection names stored on the MongoDB instance.
* @returns {Promise<string[]>}
*/
getCollectionNames(): Promise<string[]>;
/**
* Delete database
*/
flush(): Promise<void>;
/**
* Delete collection
* @param {string} collectionName
*/
dropCollection(collectionName: string): Promise<boolean>;
}
import { MongoClient } from 'mongodb';
//# sourceMappingURL=mongo-adapter.d.ts.map