数据模型
getById
Future<ModelFindResponse> app.models.getById({required String modelName, required String recordId})
根据 ID 获取单条数据。
参数
modelName
String
数据模型标识
recordId
String
数据 ID
返回
Future
ModelFindResponse
示例
- 示例
final result = await app.models.getById(
modelName: 'user',
recordId: '123',
);
if (result.isSuccess) {
print('记录: ${result.record}');
} else {
print('查询失败: ${result.message}');
}
get
Future<ModelFindResponse> app.models.get({required String modelName, Map<String, dynamic>? filter, Map<String, dynamic>? select})
根据条件获取单条数据。
参数
modelName
String
数据模型标识
filter
Map<String, dynamic>?
筛选条件,格式:{'where': {'_id': {'\$eq': 'foobar'}}}
select
Map<String, dynamic>?
字段筛选,格式:{'\$master': true} 或 {'field': true}
返回
Future
ModelFindResponse
示例
- 示例
final result = await app.models.get(
modelName: 'user',
filter: {'where': {'_id': {'\$eq': '123'}}},
select: {'\$master': true},
);
if (result.isSuccess) {
print('记录: ${result.record}');
} else {
print('查询失败: ${result.message}');
}
list
Future<ModelFindManyResponse> app.models.list({
required String modelName,
Map<String, dynamic>? filter,
Map<String, dynamic>? select,
int? pageSize,
int? pageNumber,
bool? getCount,
List<Map<String, String>>? orderBy,
})
查询多条数据。支持筛选条件、字段筛选、分页和排序。
参数
modelName
String
数据模型标识
filter
Map<String, dynamic>?
筛选条件,格式:{'where': {'field': {'\$eq': 'value'}}}
select
Map<String, dynamic>?
字段筛选,格式:{'\$master': true} 或 {'field': true}
pageSize
int?
分页大小,默认 10
pageNumber
int?
分页页码,默认 1
getCount
bool?
是否返回总数
orderBy
List<Map<String, String>>?
排序,最多 3 个字段,格式:[{'field': 'desc'}]
返回
Future
ModelFindManyResponse
示例
- 示例
final result = await app.models.list(
modelName: 'user',
pageSize: 10,
pageNumber: 1,
getCount: true,
orderBy: [{'createdAt': 'desc'}],
filter: {'where': {'age': {'\$gt': 18}}},
);
if (result.isSuccess) {
print('总数: ${result.total}');
for (final record in result.records) {
print('记录: $record');
}
}
listSimple
Future<ModelFindManyResponse> app.models.listSimple({required String modelName, int? pageSize, int? pageNumber, bool? getCount})
简单查询多条数据(GET 请求,仅支持分页参数)。
参数
modelName
String
数据模型标识
pageSize
int?
分页大小
pageNumber
int?
分页页码,默认 1
getCount
bool?
是否返回总数,默认 false
返回
Future
ModelFindManyResponse
示例
- 示例
final result = await app.models.listSimple(
modelName: 'user',
pageSize: 10,
pageNumber: 1,
getCount: true,
);
if (result.isSuccess) {
print('总数: ${result.total}');
for (final record in result.records) {
print('记录: $record');
}
}
create
Future<ModelCreateResponse> app.models.create({required String modelName, required Map<String, dynamic> data})
创建单条数据。
参数
modelName
String
数据模型标识
data
Map<String, dynamic>
数据内容
返回
Future
ModelCreateResponse
示例
- 示例
final result = await app.models.create(
modelName: 'user',
data: {'name': '张三', 'age': 25, 'email': 'test@example.com'},
);
if (result.isSuccess) {
print('创建成功,ID: ${result.id}');
} else {
print('创建失败: ${result.message}');
}
createMany
Future<ModelCreateManyResponse> app.models.createMany({required String modelName, required List<Map<String, dynamic>> data})
批量创建数据。
参数
modelName
String
数据模型标识
data
List<Map<String, dynamic>>
批量数据列表
返回
Future
ModelCreateManyResponse
示例
- 示例
final result = await app.models.createMany(
modelName: 'user',
data: [
{'name': '张三', 'age': 25},
{'name': '李四', 'age': 30},
],
);
if (result.isSuccess) {
print('批量创建成功,ID 列表: ${result.idList}');
}
update
Future<ModelUpdateDeleteResponse> app.models.update({required String modelName, required Map<String, dynamic> filter, required Map<String, dynamic> data})
更新单条数据。
参数
modelName
String
数据模型标识
filter
Map<String, dynamic>
筛选条件
data
Map<String, dynamic>
更新数据
返回
Future
ModelUpdateDeleteResponse
示例
- 示例
final result = await app.models.update(
modelName: 'user',
filter: {'where': {'_id': {'\$eq': '123'}}},
data: {'age': 26},
);
if (result.isSuccess) {
print('更新成功,变更 ${result.count} 条');
}
updateMany
Future<ModelUpdateDeleteManyResponse> app.models.updateMany({required String modelName, required Map<String, dynamic> filter, required Map<String, dynamic> data})
批量更新数据。
参数
modelName
String
数据模型标识
filter
Map<String, dynamic>
筛选条件
data
Map<String, dynamic>
更新数据
返回
Future
ModelUpdateDeleteManyResponse
示例
- 示例
final result = await app.models.updateMany(
modelName: 'user',
filter: {'where': {'age': {'\$lt': 18}}},
data: {'status': 'minor'},
);
if (result.isSuccess) {
print('批量更新成功,变更 ${result.count} 条');
}
upsert
Future<ModelUpsertResponse> app.models.upsert({required String modelName, required Map<String, dynamic> filter, Map<String, dynamic>? create, Map<String, dynamic>? update})
创建或更新单条数据(Upsert)。如果匹配到已有记录则更新,否则创建新记录。
参数
modelName
String
数据模型标识
filter
Map<String, dynamic>
筛选条件
create
Map<String, dynamic>?
不存在时创建的数据内容
update
Map<String, dynamic>?
已存在时更新的数据内容
返回
Future
ModelUpsertResponse
示例
- 示例
final result = await app.models.upsert(
modelName: 'user',
filter: {'where': {'email': {'\$eq': 'test@example.com'}}},
create: {'name': '张三', 'email': 'test@example.com', 'age': 25},
update: {'age': 26},
);
if (result.isSuccess) {
print('Upsert 成功,变更 ${result.count} 条');
if (result.id != null) {
print('新创建记录 ID: ${result.id}');
}
}
deleteById
Future<ModelUpdateDeleteResponse> app.models.deleteById({required String modelName, required String recordId})
根据 ID 删除单条数据。
参数
modelName
String
数据模型标识
recordId
String
数据 ID
返回
Future
ModelUpdateDeleteResponse
示例
- 示例
final result = await app.models.deleteById(
modelName: 'user',
recordId: '123',
);
if (result.isSuccess) {
print('删除成功,变更 ${result.count} 条');
}
deleteRecord
Future<ModelUpdateDeleteResponse> app.models.deleteRecord({required String modelName, required Map<String, dynamic> filter})
根据条件删除单条数据。
参数
modelName
String
数据模型标识
filter
Map<String, dynamic>
筛选条件
返回
Future
ModelUpdateDeleteResponse
示例
- 示例
final result = await app.models.deleteRecord(
modelName: 'user',
filter: {'where': {'_id': {'\$eq': '123'}}},
);
if (result.isSuccess) {
print('删除成功,变更 ${result.count} 条');
}
deleteMany
Future<ModelUpdateDeleteManyResponse> app.models.deleteMany({required String modelName, required Map<String, dynamic> filter})
批量删除数据。
参数
modelName
String
数据模型标识
filter
Map<String, dynamic>
筛选条件
返回
Future
ModelUpdateDeleteManyResponse
示例
- 示例
final result = await app.models.deleteMany(
modelName: 'user',
filter: {'where': {'status': {'\$eq': 'inactive'}}},
);
if (result.isSuccess) {
print('批量删除成功,变更 ${result.count} 条');
}
mysqlCommand
Future<ModelMysqlCommandResponse> app.models.mysqlCommand({required String sqlTemplate, List<ModelMysqlParameter>? parameter, ModelMysqlConfig? config})
执行 MySQL 命令。支持参数化查询。
参数
sqlTemplate
String
SQL 语句,支持参数占位符 {{ var }}
parameter
List<ModelMysqlParameter>?
SQL 参数列表
config
ModelMysqlConfig?
执行配置(timeout、preparedStatements、dbLinkName)
返回
Future
ModelMysqlCommandResponse
示例
- 示例
final result = await app.models.mysqlCommand(
sqlTemplate: 'select * from `users` where _id = {{ _id }}',
parameter: [
ModelMysqlParameter(key: '_id', type: 'STRING', value: '123'),
],
);
if (result.isSuccess) {
print('执行结果: ${result.executeResultList}');
}