/// import { EventEmitter } from 'events'; import * as MONGO from 'mongodb'; export declare class ReHash extends EventEmitter { private fObj; args: any; private _collection_; private _data_; private _online_; private _bind_auto_save; ready: boolean; get findKey(): any; private _jugetfunc; setObjectID(objID: object, v: any): void; constructor(parent: MONGO.Collection, fObj: Object, judgefunc: ((a: T, b: T) => number) | undefined, args: any); force_ok(): void; insert(v: T): Promise; /** * 返回的都是 拷贝项,变更都要主动set * @param key */ get(key: string): any; private _changeKey; private _get; private _set; set(key: string, value: any): void; mset(a: { k: string; v: any; }[]): void; /** * 按照一个key 一个 value的方式传入参数 * @param args */ lset(...args: any[]): void; /** * 标记一个字段需要重新保存一下 * @param key */ flag(key: string): void; private _auto_save; private _check_save; /** * 立即保存数据到数据库 */ force_save(): Promise; private auto_save; /** * 从数据库加载数据 * @param fitle */ load(fitle?: any): Promise>; /** * 是否是空数据 */ get empty(): boolean; get data(): T; clone(): T; get value(): T; get value_all(): T; /** * 删除某个字段 * @param key */ del(key: string | string[]): void; /** * 删除当前数据 */ remove(): void; private _reload_count; private _on_load; private _cc_; private _judge_list; private batchFind; } export declare class ReList { private fobj; private _collection_; args: any; private _data_; private _online_; constructor(parent: MONGO.Collection, fobj: Object, args: any); get findKey(): Object; clone(): T[]; get value(): T[]; get value_all(): T[]; get data(): T[]; set(index: number, key: string, value: any): void; push_back(v: T): void; private _start; private _limit; limit(num: number): this; skip(num: number): this; /** * @description 加载列表数据 * @date 2020-03-25 * @param {boolean} [desc=false] 排序(暂时无效) * @param {*} [filter] 筛选的字段 * @returns 返回查询对象 * @memberof ReList */ load(desc?: boolean, filter?: any): Promise>; get length(): number; get_at(index: number, org?: boolean): T | null; rm_at(index: number): void; clear_all(): void; private _has_same; del(fObj: any): void; } export interface IFIndex { col: string; keys?: any; index: string; } export declare class TeMongoDBUnit extends EventEmitter { private db; private index_check_pool; private collections; private _collect_pool; private ready; check_ready(): void; constructor(db: MONGO.Db, collections: string[] | undefined, col_indexs: IFIndex[]); private _judge_count; private _judge_index_finish; private _ct_wait_list; private _col_create_ret; private _create_index; private _idx_wait_list; private _col_idx_create_ret; private _check_index_keys; private _judge_index; /** * 检查数据集是否存在 */ private _check_collections; private _init_finish; get_unit(col_name: string, fObj?: Object, jugetfunc?: ((a: T, b: T) => number) | undefined, ...args: any[]): ReHash; get_list(col_name: string, fObj?: Object, ...args: any[]): ReList; /** * 直接插入数据,如果_id重复就异常 * @param col_name * @param fObj * @param insert_value */ insert(col_name: string, insert_value: any): Promise & { _id: unknown; }>>; /** * 只有不存在的时候才会插入新数据 * @param col_name * @param fObj * @param insert_value */ find_insert_unit(col_name: string, fObj: Object | undefined, insert_value: any): Promise; update_insert(col_name: string, fObj: Object | undefined, insert_value: any): Promise; /**合并内容 */ private merageInfo; /** * 更新数据 * @param col_name * @param fObj * @param value * @param insert 如果是 false的时候,数据不存在也返回操作成功 */ update(col_name: string, fObj: Object | undefined, value: any, insert?: boolean): Promise; get_collection(table: string): MONGO.Collection; get_collection_size(dbname: string, cb: (infos: string) => void): void; get_aggregate(dbname: string, pipeline: any[]): Promise; /** * 检查和跟新存储函数 * @param func */ check_func(func: Function): Promise; call_func(fun_name: string, ...args: (string)[]): Promise<{ ok: number; retval: any; }>; private eval; del(table: string, fobj: Object): Promise; } interface IFMongoPreInit { database: string; colltions: string[]; indexs: IFIndex[]; ready?: boolean; } export declare class TeMongoDB extends EventEmitter { private _gl_opts; private _pre_inits; protected mongodb: MONGO.MongoClient | MONGO.ReplSet; constructor(); private _state_; private _update_time; private _last_error; get ready(): boolean; get state(): "error" | "close" | "timeout" | "ready" | "left_primate"; set state(v: "error" | "close" | "timeout" | "ready" | "left_primate"); get sys_state(): { state: "error" | "close" | "timeout" | "ready" | "left_primate"; up_time: number; last_err: string; }; protected db_maps: { [x: string]: TeMongoDBUnit; }; protected db_keys: string[]; /** * * @param database_name 数据库的名字 * @param collections 需要的数据集 可以选,选择后会生成对应的数据集后返回准备状态 */ get_database(database_name: string, collections?: string[], col_indexs?: IFIndex[]): TeMongoDBUnit; get_collection_size(db: any, col: any, cb: (info: string) => void): void; get defaultBDName(): string; error_listen(): void; init(hosts: { host: string; port: number; }[] | string, options: MONGO.MongoClientOptions | undefined, pre_inits: IFMongoPreInit[]): this; private _on_ready; private _check_ready; } export {};