首次提交
This commit is contained in:
51
lib/base/database/impl/MongoDb.dart
Normal file
51
lib/base/database/impl/MongoDb.dart
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user