Flutter MongoDB数据库操作插件angel3_mongo的使用
Flutter MongoDB数据库操作插件angel3_mongo的使用
本指南将详细介绍如何在Flutter项目中使用angel3_mongo
插件来操作MongoDB数据库。我们将从安装开始,逐步展示如何配置和使用该插件。
安装
首先,在你的pubspec.yaml
文件中添加angel3_mongo
依赖:
dependencies:
angel3_mongo: ^8.0.0
然后运行flutter pub get
来获取最新的包。
使用
这个库主要暴露了一个类:MongoService
。它用于与MongoDB进行交互。
示例代码
下面是一个完整的示例代码,展示了如何使用angel3_mongo
插件来操作MongoDB数据库。
import 'package:angel3_container/mirrors.dart';
import 'package:angel3_framework/angel3_framework.dart';
import 'package:angel3_mongo/angel3_mongo.dart';
import 'package:mongo_dart/mongo_dart.dart';
// 定义一个模型类
class User extends Model {
String username;
String password;
}
void main() async {
// 创建Angel应用实例
var app = Angel(reflector: MirrorsReflector());
// 连接到MongoDB数据库
var db = Db('mongodb://localhost:27017/testDB');
await db.open();
// 认证MongoDB用户信息
await db.authenticate("root", "Qwerty", authDb: "admin");
// 使用MongoService创建一个服务
var service = app.use('/api/users', MongoService(db.collection('users')));
// 监听创建后的事件
service.afterCreated.listen((event) {
print('New user: ${event.result}');
});
// 启动应用
await app.startServer('localhost', 3000);
}
模型
Model
是一个没有任何实际功能的类,但它代表了一个基本的文档,并且你的服务应该托管继承自它的类。其他Angel服务提供者也支持Model
,因此如果你将来需要切换数据库,这将使你的应用程序更容易修改。
class User extends Model {
String username;
String password;
}
MongoService
MongoService
类与DbCollection
(来自mongo_dart
)进行交互,并将数据序列化为和从Map
中。
var service = app.use('/api/users', MongoService(db.collection('users')));
查询
你可以通过以下方式查询这些服务:
List queried = await MyService.index({r"$query": where.id(ObjectId.fromHexString("some hex string"))});
你也可以使用mongo_dart
查询。只需将其作为query
参数传递即可。
重要注意事项
当你连接到本地安装的MongoDB实例或具有身份验证功能的Docker-based MongoDB时,不支持以下连接字符串:
var db = Db('mongodb://<username>:<password>@localhost:27017/testDB');
await db.open();
你应该使用以下方法。默认情况下,用户访问信息存储在admin
数据库中:
var db = Db('mongodb://localhost:27017/testDB');
await db.open();
await db.authenticate("<username>", "<password>", authDb: "admin");
更多关于Flutter MongoDB数据库操作插件angel3_mongo的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复