sig
  exception Mongo_failed of string
  type t
  val get_db_name : Mongo.t -> string
  val get_collection_name : Mongo.t -> string
  val get_ip : Mongo.t -> string
  val get_port : Mongo.t -> int
  val get_file_descr : Mongo.t -> Unix.file_descr
  val create : string -> int -> string -> string -> Mongo.t
  val create_local_default : string -> string -> Mongo.t
  val destory : Mongo.t -> unit
  val insert : Mongo.t -> Bson.t list -> unit
  val update_one : Mongo.t -> Bson.t * Bson.t -> unit
  val update_all : Mongo.t -> Bson.t * Bson.t -> unit
  val delete_one : Mongo.t -> Bson.t -> unit
  val delete_all : Mongo.t -> Bson.t -> unit
  val find : Mongo.t -> MongoReply.t
  val find_one : Mongo.t -> MongoReply.t
  val find_of_num : Mongo.t -> int -> MongoReply.t
  val find_q : Mongo.t -> Bson.t -> MongoReply.t
  val find_q_one : Mongo.t -> Bson.t -> MongoReply.t
  val find_q_of_num : Mongo.t -> Bson.t -> int -> MongoReply.t
  val find_q_s : Mongo.t -> Bson.t -> Bson.t -> MongoReply.t
  val find_q_s_one : Mongo.t -> Bson.t -> Bson.t -> MongoReply.t
  val find_q_s_of_num : Mongo.t -> Bson.t -> Bson.t -> int -> MongoReply.t
  val get_more_of_num : Mongo.t -> int64 -> int -> MongoReply.t
  val get_more : Mongo.t -> int64 -> MongoReply.t
  val kill_cursors : Mongo.t -> int64 list -> unit
end