首次提交

This commit is contained in:
qmqz
2025-01-02 10:08:03 +08:00
commit fd62ed3d98
16 changed files with 1143 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
import 'package:EasyDartModule/base/database/DataBase.dart';
import 'package:mongo_dart/mongo_dart.dart';
class MongoDb implements DataBase {
final DataBaseConfig config;
final Db db;
MongoDb(this.config)
: db = Db(
"mongodb://${config.userName}:${config.password}@${config.host}/${config.dataBase}?authSource=admin") {
Future.delayed(Duration(seconds: 1), () async {
do {
try {
await db.open();
print('Connected successfully!');
} catch (e) {
print('Connection error: $e');
await Future.delayed(Duration(seconds: 1));
}
} while (!db.isConnected);
});
}
DbCollection getCollection(String name) {
return db.collection(name);
}
@override
Future<void> delete(String table, dynamic condition) async {
await getCollection(table).deleteMany(condition);
}
@override
Future<void> insert(String table, Map<String, dynamic> data) async {
await getCollection(table).insert(data);
}
@override
Future<List<Map<String, dynamic>>> query(String table,
{dynamic condition}) async {
if (condition == null) {
return await getCollection(table).find().toList();
}
return await getCollection(table).find(condition).toList();
}
@override
Future<void> update(
String table, Map<String, dynamic> data, dynamic condition) async {
await getCollection(table).update(condition, data);
}
}