private FindIterable<JsonObject> doFind(String collection, JsonObject query, FindOptions options) {
return doFind(collection, null, query, options);
}
private FindIterable<JsonObject> doFind(String collection, WriteOption writeOption, JsonObject query, FindOptions options) {
MongoCollection<JsonObject> coll = getCollection(collection, writeOption);
<BUG>Bson bquery = wrap(query);
FindIterable<JsonObject> find = coll.find(bquery, JsonObject.class);</BUG>
if (options.getLimit() != -1) {
find.limit(options.getLimit());
}

private FindIterable<JsonObject> doFind(String collection, JsonObject query, FindOptions options) {
return doFind(collection, null, query, options);
}
private FindIterable<JsonObject> doFind(String collection, WriteOption writeOption, JsonObject query, FindOptions options) {
MongoCollection<JsonObject> coll = getCollection(collection, writeOption);
Bson bquery = wrap(encodeKeyWhenUseObjectId(query));
FindIterable<JsonObject> find = coll.find(bquery, JsonObject.class);
if (options.getLimit() != -1) {
find.limit(options.getLimit());
}
