2020-06-26 14:28:00 +00:00
|
|
|
import pymongo
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
from helpers.client import QueryRuntimeException
|
|
|
|
|
|
|
|
from helpers.cluster import ClickHouseCluster
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
2021-07-27 15:54:13 +00:00
|
|
|
def started_cluster(request):
|
2020-06-26 14:28:00 +00:00
|
|
|
try:
|
2021-07-27 15:54:13 +00:00
|
|
|
cluster = ClickHouseCluster(__file__)
|
2022-03-22 16:39:58 +00:00
|
|
|
node = cluster.add_instance(
|
|
|
|
"node",
|
|
|
|
main_configs=[
|
|
|
|
"configs_secure/config.d/ssl_conf.xml",
|
|
|
|
"configs/named_collections.xml",
|
|
|
|
],
|
|
|
|
with_mongo=True,
|
|
|
|
with_mongo_secure=request.param,
|
|
|
|
)
|
2020-06-26 14:28:00 +00:00
|
|
|
cluster.start()
|
|
|
|
yield cluster
|
|
|
|
finally:
|
|
|
|
cluster.shutdown()
|
|
|
|
|
|
|
|
|
2021-12-09 14:40:51 +00:00
|
|
|
def get_mongo_connection(started_cluster, secure=False, with_credentials=True):
|
2022-03-22 16:39:58 +00:00
|
|
|
connection_str = ""
|
2021-12-09 14:40:51 +00:00
|
|
|
if with_credentials:
|
2022-03-22 16:39:58 +00:00
|
|
|
connection_str = "mongodb://root:clickhouse@localhost:{}".format(
|
|
|
|
started_cluster.mongo_port
|
|
|
|
)
|
2021-12-09 14:40:51 +00:00
|
|
|
else:
|
2022-03-22 16:39:58 +00:00
|
|
|
connection_str = "mongodb://localhost:{}".format(
|
|
|
|
started_cluster.mongo_no_cred_port
|
|
|
|
)
|
2021-07-27 15:54:13 +00:00
|
|
|
if secure:
|
2022-03-22 16:39:58 +00:00
|
|
|
connection_str += "/?tls=true&tlsAllowInvalidCertificates=true"
|
2020-06-26 14:28:00 +00:00
|
|
|
return pymongo.MongoClient(connection_str)
|
|
|
|
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
2020-06-26 14:28:00 +00:00
|
|
|
def test_simple_select(started_cluster):
|
2021-02-18 21:21:50 +00:00
|
|
|
mongo_connection = get_mongo_connection(started_cluster)
|
2022-03-22 16:39:58 +00:00
|
|
|
db = mongo_connection["test"]
|
|
|
|
db.add_user("root", "clickhouse")
|
|
|
|
simple_mongo_table = db["simple_table"]
|
2022-07-12 12:02:09 +00:00
|
|
|
data = []
|
|
|
|
for i in range(0, 100):
|
|
|
|
data.append({"key": i, "data": hex(i * i)})
|
|
|
|
simple_mongo_table.insert_many(data)
|
2020-06-26 14:28:00 +00:00
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
node = started_cluster.instances["node"]
|
2020-09-16 04:26:10 +00:00
|
|
|
node.query(
|
2022-03-22 16:39:58 +00:00
|
|
|
"CREATE TABLE simple_mongo_table(key UInt64, data String) ENGINE = MongoDB('mongo1:27017', 'test', 'simple_table', 'root', 'clickhouse')"
|
|
|
|
)
|
|
|
|
|
|
|
|
assert node.query("SELECT COUNT() FROM simple_mongo_table") == "100\n"
|
|
|
|
assert (
|
|
|
|
node.query("SELECT sum(key) FROM simple_mongo_table")
|
|
|
|
== str(sum(range(0, 100))) + "\n"
|
|
|
|
)
|
|
|
|
|
|
|
|
assert (
|
|
|
|
node.query("SELECT data from simple_mongo_table where key = 42")
|
|
|
|
== hex(42 * 42) + "\n"
|
|
|
|
)
|
2021-08-30 12:58:21 +00:00
|
|
|
node.query("DROP TABLE simple_mongo_table")
|
|
|
|
simple_mongo_table.drop()
|
2020-06-26 14:28:00 +00:00
|
|
|
|
|
|
|
|
2023-04-20 15:51:10 +00:00
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
|
|
|
def test_arrays(started_cluster):
|
|
|
|
mongo_connection = get_mongo_connection(started_cluster)
|
|
|
|
db = mongo_connection["test"]
|
|
|
|
db.add_user("root", "clickhouse")
|
|
|
|
simple_mongo_table = db["simple_table"]
|
|
|
|
data = []
|
|
|
|
for i in range(0, 100):
|
|
|
|
data.append({
|
|
|
|
"key": i,
|
|
|
|
"arr_int64": [- (i + 1), - (i + 2), - (i + 3)],
|
|
|
|
"arr_int32": [- (i + 1), - (i + 2), - (i + 3)],
|
|
|
|
"arr_int16": [- (i + 1), - (i + 2), - (i + 3)],
|
|
|
|
"arr_int8": [- (i + 1), - (i + 2), - (i + 3)],
|
|
|
|
"arr_uint64": [i + 1, i + 2, i + 3],
|
|
|
|
"arr_uint32": [i + 1, i + 2, i + 3],
|
|
|
|
"arr_uint16": [i + 1, i + 2, i + 3],
|
|
|
|
"arr_uint8": [i + 1, i + 2, i + 3],
|
|
|
|
"arr_float32": [i + 1.125, i + 2.5, i + 3.750],
|
|
|
|
"arr_float64": [i + 1.125, i + 2.5, i + 3.750],
|
|
|
|
"arr_date": ['2023-11-01', '2023-06-19'],
|
|
|
|
"arr_datetime": ['2023-03-31 06:03:12', '2023-02-01 12:46:34'],
|
|
|
|
"arr_string": [str(i + 1), str(i + 2), str(i + 3)],
|
|
|
|
"arr_uuid": ['f0e77736-91d1-48ce-8f01-15123ca1c7ed', '93376a07-c044-4281-a76e-ad27cf6973c5'],
|
|
|
|
"arr_arr_bool": [[True, False, True]]
|
|
|
|
})
|
|
|
|
|
|
|
|
simple_mongo_table.insert_many(data)
|
|
|
|
|
|
|
|
node = started_cluster.instances["node"]
|
|
|
|
node.query(
|
|
|
|
"CREATE TABLE simple_mongo_table("
|
|
|
|
"key UInt64,"
|
|
|
|
"arr_int64 Array(Int64),"
|
|
|
|
"arr_int32 Array(Int32),"
|
|
|
|
"arr_int16 Array(Int16),"
|
|
|
|
"arr_int8 Array(Int8),"
|
|
|
|
"arr_uint64 Array(UInt64),"
|
|
|
|
"arr_uint32 Array(UInt32),"
|
|
|
|
"arr_uint16 Array(UInt16),"
|
|
|
|
"arr_uint8 Array(UInt8),"
|
|
|
|
"arr_float32 Array(Float32),"
|
|
|
|
"arr_float64 Array(Float64),"
|
|
|
|
"arr_date Array(Date),"
|
|
|
|
"arr_datetime Array(DateTime),"
|
|
|
|
"arr_string Array(String),"
|
|
|
|
"arr_uuid Array(UUID),"
|
|
|
|
"arr_arr_bool Array(Array(Bool))"
|
|
|
|
") ENGINE = MongoDB('mongo1:27017', 'test', 'simple_table', 'root', 'clickhouse')"
|
|
|
|
)
|
|
|
|
|
|
|
|
assert node.query("SELECT COUNT() FROM simple_mongo_table") == "100\n"
|
|
|
|
|
|
|
|
for column_name in ["arr_int64", "arr_int32", "arr_int16", "arr_int8"]:
|
|
|
|
assert (
|
|
|
|
node.query(f"SELECT {column_name} from simple_mongo_table where key = 42")
|
|
|
|
== "[-43,-44,-45]\n"
|
|
|
|
)
|
|
|
|
|
|
|
|
for column_name in ["arr_uint64", "arr_uint32", "arr_uint16", "arr_uint8"]:
|
|
|
|
assert (
|
|
|
|
node.query(f"SELECT {column_name} from simple_mongo_table where key = 42")
|
|
|
|
== "[43,44,45]\n"
|
|
|
|
)
|
|
|
|
|
|
|
|
for column_name in ["arr_float32", "arr_float64"]:
|
|
|
|
assert (
|
|
|
|
node.query(f"SELECT {column_name} from simple_mongo_table where key = 42")
|
|
|
|
== "[43,44,45]\n"
|
|
|
|
)
|
|
|
|
|
|
|
|
node.query("DROP TABLE simple_mongo_table")
|
|
|
|
simple_mongo_table.drop()
|
|
|
|
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
2020-06-26 14:28:00 +00:00
|
|
|
def test_complex_data_type(started_cluster):
|
2021-02-18 21:21:50 +00:00
|
|
|
mongo_connection = get_mongo_connection(started_cluster)
|
2022-03-22 16:39:58 +00:00
|
|
|
db = mongo_connection["test"]
|
|
|
|
db.add_user("root", "clickhouse")
|
|
|
|
incomplete_mongo_table = db["complex_table"]
|
2020-06-26 14:28:00 +00:00
|
|
|
data = []
|
|
|
|
for i in range(0, 100):
|
2022-03-22 16:39:58 +00:00
|
|
|
data.append({"key": i, "data": hex(i * i), "dict": {"a": i, "b": str(i)}})
|
2020-06-26 14:28:00 +00:00
|
|
|
incomplete_mongo_table.insert_many(data)
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
node = started_cluster.instances["node"]
|
2020-09-16 04:26:10 +00:00
|
|
|
node.query(
|
2022-03-22 16:39:58 +00:00
|
|
|
"CREATE TABLE incomplete_mongo_table(key UInt64, data String) ENGINE = MongoDB('mongo1:27017', 'test', 'complex_table', 'root', 'clickhouse')"
|
|
|
|
)
|
|
|
|
|
|
|
|
assert node.query("SELECT COUNT() FROM incomplete_mongo_table") == "100\n"
|
|
|
|
assert (
|
|
|
|
node.query("SELECT sum(key) FROM incomplete_mongo_table")
|
|
|
|
== str(sum(range(0, 100))) + "\n"
|
|
|
|
)
|
|
|
|
|
|
|
|
assert (
|
|
|
|
node.query("SELECT data from incomplete_mongo_table where key = 42")
|
|
|
|
== hex(42 * 42) + "\n"
|
|
|
|
)
|
2021-08-30 12:58:21 +00:00
|
|
|
node.query("DROP TABLE incomplete_mongo_table")
|
|
|
|
incomplete_mongo_table.drop()
|
2020-06-26 14:28:00 +00:00
|
|
|
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
2020-06-26 14:28:00 +00:00
|
|
|
def test_incorrect_data_type(started_cluster):
|
2021-02-18 21:21:50 +00:00
|
|
|
mongo_connection = get_mongo_connection(started_cluster)
|
2022-03-22 16:39:58 +00:00
|
|
|
db = mongo_connection["test"]
|
|
|
|
db.add_user("root", "clickhouse")
|
|
|
|
strange_mongo_table = db["strange_table"]
|
2020-06-26 14:28:00 +00:00
|
|
|
data = []
|
|
|
|
for i in range(0, 100):
|
2022-03-22 16:39:58 +00:00
|
|
|
data.append({"key": i, "data": hex(i * i), "aaaa": "Hello"})
|
2020-06-26 14:28:00 +00:00
|
|
|
strange_mongo_table.insert_many(data)
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
node = started_cluster.instances["node"]
|
2020-09-16 04:26:10 +00:00
|
|
|
node.query(
|
2022-03-22 16:39:58 +00:00
|
|
|
"CREATE TABLE strange_mongo_table(key String, data String) ENGINE = MongoDB('mongo1:27017', 'test', 'strange_table', 'root', 'clickhouse')"
|
|
|
|
)
|
2020-06-26 14:28:00 +00:00
|
|
|
|
|
|
|
with pytest.raises(QueryRuntimeException):
|
|
|
|
node.query("SELECT COUNT() FROM strange_mongo_table")
|
|
|
|
|
|
|
|
with pytest.raises(QueryRuntimeException):
|
|
|
|
node.query("SELECT uniq(key) FROM strange_mongo_table")
|
|
|
|
|
2020-09-16 04:26:10 +00:00
|
|
|
node.query(
|
2022-03-22 16:39:58 +00:00
|
|
|
"CREATE TABLE strange_mongo_table2(key UInt64, data String, bbbb String) ENGINE = MongoDB('mongo1:27017', 'test', 'strange_table', 'root', 'clickhouse')"
|
|
|
|
)
|
2020-06-26 14:28:00 +00:00
|
|
|
|
2021-08-30 12:58:21 +00:00
|
|
|
node.query("DROP TABLE strange_mongo_table")
|
|
|
|
node.query("DROP TABLE strange_mongo_table2")
|
|
|
|
strange_mongo_table.drop()
|
2021-07-27 15:54:13 +00:00
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
|
|
|
|
@pytest.mark.parametrize("started_cluster", [True], indirect=["started_cluster"])
|
2021-07-27 15:54:13 +00:00
|
|
|
def test_secure_connection(started_cluster):
|
2021-07-27 17:43:41 +00:00
|
|
|
mongo_connection = get_mongo_connection(started_cluster, secure=True)
|
2022-03-22 16:39:58 +00:00
|
|
|
db = mongo_connection["test"]
|
|
|
|
db.add_user("root", "clickhouse")
|
|
|
|
simple_mongo_table = db["simple_table"]
|
2021-07-27 15:54:13 +00:00
|
|
|
data = []
|
2022-07-12 12:02:09 +00:00
|
|
|
for i in range(0, 100):
|
|
|
|
data.append({"key": i, "data": hex(i * i)})
|
|
|
|
simple_mongo_table.insert_many(data)
|
2021-07-27 15:54:13 +00:00
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
node = started_cluster.instances["node"]
|
2021-07-27 15:54:13 +00:00
|
|
|
node.query(
|
2022-03-22 16:39:58 +00:00
|
|
|
"CREATE TABLE simple_mongo_table(key UInt64, data String) ENGINE = MongoDB('mongo1:27017', 'test', 'simple_table', 'root', 'clickhouse', 'ssl=true')"
|
|
|
|
)
|
|
|
|
|
|
|
|
assert node.query("SELECT COUNT() FROM simple_mongo_table") == "100\n"
|
|
|
|
assert (
|
|
|
|
node.query("SELECT sum(key) FROM simple_mongo_table")
|
|
|
|
== str(sum(range(0, 100))) + "\n"
|
|
|
|
)
|
|
|
|
|
|
|
|
assert (
|
|
|
|
node.query("SELECT data from simple_mongo_table where key = 42")
|
|
|
|
== hex(42 * 42) + "\n"
|
|
|
|
)
|
2021-08-30 12:58:21 +00:00
|
|
|
node.query("DROP TABLE simple_mongo_table")
|
|
|
|
simple_mongo_table.drop()
|
2021-09-03 11:16:32 +00:00
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
|
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
2021-09-03 11:16:32 +00:00
|
|
|
def test_predefined_connection_configuration(started_cluster):
|
|
|
|
mongo_connection = get_mongo_connection(started_cluster)
|
2022-03-22 16:39:58 +00:00
|
|
|
db = mongo_connection["test"]
|
|
|
|
db.add_user("root", "clickhouse")
|
|
|
|
simple_mongo_table = db["simple_table"]
|
2021-09-03 11:16:32 +00:00
|
|
|
data = []
|
|
|
|
for i in range(0, 100):
|
2022-03-22 16:39:58 +00:00
|
|
|
data.append({"key": i, "data": hex(i * i)})
|
2021-09-03 11:16:32 +00:00
|
|
|
simple_mongo_table.insert_many(data)
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
node = started_cluster.instances["node"]
|
2022-05-09 10:04:05 +00:00
|
|
|
node.query("drop table if exists simple_mongo_table")
|
2022-03-22 16:39:58 +00:00
|
|
|
node.query(
|
|
|
|
"create table simple_mongo_table(key UInt64, data String) engine = MongoDB(mongo1)"
|
|
|
|
)
|
|
|
|
assert node.query("SELECT count() FROM simple_mongo_table") == "100\n"
|
2021-12-09 14:40:51 +00:00
|
|
|
simple_mongo_table.drop()
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
|
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
2021-12-09 14:40:51 +00:00
|
|
|
def test_no_credentials(started_cluster):
|
|
|
|
mongo_connection = get_mongo_connection(started_cluster, with_credentials=False)
|
2022-03-22 16:39:58 +00:00
|
|
|
db = mongo_connection["test"]
|
|
|
|
simple_mongo_table = db["simple_table"]
|
2021-12-09 14:40:51 +00:00
|
|
|
data = []
|
|
|
|
for i in range(0, 100):
|
2022-03-22 16:39:58 +00:00
|
|
|
data.append({"key": i, "data": hex(i * i)})
|
2021-12-09 14:40:51 +00:00
|
|
|
simple_mongo_table.insert_many(data)
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
node = started_cluster.instances["node"]
|
|
|
|
node.query(
|
|
|
|
"create table simple_mongo_table_2(key UInt64, data String) engine = MongoDB('mongo2:27017', 'test', 'simple_table', '', '')"
|
|
|
|
)
|
|
|
|
assert node.query("SELECT count() FROM simple_mongo_table_2") == "100\n"
|
2021-09-03 11:16:32 +00:00
|
|
|
simple_mongo_table.drop()
|
2021-12-13 16:03:24 +00:00
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
|
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
2021-12-13 16:03:24 +00:00
|
|
|
def test_auth_source(started_cluster):
|
|
|
|
mongo_connection = get_mongo_connection(started_cluster, with_credentials=False)
|
2022-03-22 16:39:58 +00:00
|
|
|
admin_db = mongo_connection["admin"]
|
|
|
|
admin_db.add_user(
|
|
|
|
"root",
|
|
|
|
"clickhouse",
|
|
|
|
roles=[{"role": "userAdminAnyDatabase", "db": "admin"}, "readWriteAnyDatabase"],
|
|
|
|
)
|
|
|
|
simple_mongo_table = admin_db["simple_table"]
|
2021-12-13 16:03:24 +00:00
|
|
|
data = []
|
|
|
|
for i in range(0, 50):
|
2022-03-22 16:39:58 +00:00
|
|
|
data.append({"key": i, "data": hex(i * i)})
|
2021-12-13 16:03:24 +00:00
|
|
|
simple_mongo_table.insert_many(data)
|
2022-03-22 16:39:58 +00:00
|
|
|
db = mongo_connection["test"]
|
|
|
|
simple_mongo_table = db["simple_table"]
|
2021-12-13 16:03:24 +00:00
|
|
|
data = []
|
|
|
|
for i in range(0, 100):
|
2022-03-22 16:39:58 +00:00
|
|
|
data.append({"key": i, "data": hex(i * i)})
|
2021-12-13 16:03:24 +00:00
|
|
|
simple_mongo_table.insert_many(data)
|
|
|
|
|
2022-03-22 16:39:58 +00:00
|
|
|
node = started_cluster.instances["node"]
|
|
|
|
node.query(
|
|
|
|
"create table simple_mongo_table_fail(key UInt64, data String) engine = MongoDB('mongo2:27017', 'test', 'simple_table', 'root', 'clickhouse')"
|
|
|
|
)
|
2021-12-13 16:03:24 +00:00
|
|
|
node.query_and_get_error("SELECT count() FROM simple_mongo_table_fail")
|
2022-03-22 16:39:58 +00:00
|
|
|
node.query(
|
|
|
|
"create table simple_mongo_table_ok(key UInt64, data String) engine = MongoDB('mongo2:27017', 'test', 'simple_table', 'root', 'clickhouse', 'authSource=admin')"
|
|
|
|
)
|
|
|
|
assert node.query("SELECT count() FROM simple_mongo_table_ok") == "100\n"
|
2021-12-13 16:03:24 +00:00
|
|
|
simple_mongo_table.drop()
|
2022-04-14 17:31:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
|
|
|
def test_missing_columns(started_cluster):
|
|
|
|
mongo_connection = get_mongo_connection(started_cluster)
|
|
|
|
db = mongo_connection["test"]
|
|
|
|
db.add_user("root", "clickhouse")
|
|
|
|
simple_mongo_table = db["simple_table"]
|
|
|
|
data = []
|
|
|
|
for i in range(0, 10):
|
|
|
|
data.append({"key": i, "data": hex(i * i)})
|
|
|
|
for i in range(0, 10):
|
|
|
|
data.append({"key": i})
|
|
|
|
simple_mongo_table.insert_many(data)
|
|
|
|
|
|
|
|
node = started_cluster.instances["node"]
|
2022-04-20 09:13:39 +00:00
|
|
|
node.query("drop table if exists simple_mongo_table")
|
2022-04-14 17:31:07 +00:00
|
|
|
node.query(
|
|
|
|
"create table simple_mongo_table(key UInt64, data Nullable(String)) engine = MongoDB(mongo1)"
|
|
|
|
)
|
|
|
|
result = node.query("SELECT count() FROM simple_mongo_table WHERE isNull(data)")
|
|
|
|
assert result == "10\n"
|
|
|
|
simple_mongo_table.drop()
|
2022-07-13 09:27:43 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("started_cluster", [False], indirect=["started_cluster"])
|
|
|
|
def test_simple_insert_select(started_cluster):
|
|
|
|
mongo_connection = get_mongo_connection(started_cluster)
|
|
|
|
db = mongo_connection["test"]
|
|
|
|
db.add_user("root", "clickhouse")
|
|
|
|
simple_mongo_table = db["simple_table"]
|
|
|
|
|
|
|
|
node = started_cluster.instances["node"]
|
2022-07-13 20:59:14 +00:00
|
|
|
node.query("DROP TABLE IF EXISTS simple_mongo_table")
|
2022-07-13 09:27:43 +00:00
|
|
|
node.query(
|
|
|
|
"CREATE TABLE simple_mongo_table(key UInt64, data String) ENGINE = MongoDB('mongo1:27017', 'test', 'simple_table', 'root', 'clickhouse')"
|
|
|
|
)
|
|
|
|
node.query("INSERT INTO simple_mongo_table SELECT 1, 'kek'")
|
|
|
|
|
|
|
|
assert (
|
|
|
|
node.query("SELECT data from simple_mongo_table where key = 1").strip() == "kek"
|
|
|
|
)
|
|
|
|
node.query("INSERT INTO simple_mongo_table(key) SELECT 12")
|
|
|
|
assert int(node.query("SELECT count() from simple_mongo_table")) == 2
|
|
|
|
assert (
|
|
|
|
node.query("SELECT data from simple_mongo_table where key = 12").strip() == ""
|
|
|
|
)
|
|
|
|
|
|
|
|
node.query("DROP TABLE simple_mongo_table")
|
|
|
|
simple_mongo_table.drop()
|