| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using Amazon.Runtime.Documents;
- using MongoDB.Driver;
- using MongoDB.Driver.Linq;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Reflection.Metadata;
- using System.Text;
- using System.Threading.Tasks;
- using Volo.Abp.Domain.Entities;
- namespace Business.Core.MongoDBHelper
- {
- /// <summary>
- /// MongoDB接口
- /// </summary>
- /// <typeparam name="T"></typeparam>
- public interface IMongoDB<T>
- {
- /// <summary>
- /// 插入一条数据
- /// </summary>
- /// <param name="document"></param>
- /// <returns></returns>
- Task InsertOne(T document);
- /// <summary>
- /// 插入多条数据
- /// </summary>
- /// <param name="documents"></param>
- /// <returns></returns>
- Task InsertMany(List<T> documents);
- /// <summary>
- /// 获取所有数据
- /// </summary>
- /// <returns></returns>
- Task<List<T>> GetAll();
- /// <summary>
- /// 根据条件获取数据
- /// </summary>
- /// <returns></returns>
- Task<List<T>> GetManyByCondition(Expression<Func<T, bool>> filter);
- /// <summary>
- /// 根据条件获取数据
- /// </summary>
- /// <returns></returns>
- Task<List<T>> GetManyByIds(FilterDefinition<T> filter);
- /// <summary>
- /// 删除数据
- /// </summary>
- /// <param name="expression"></param>
- /// <param name="isOne"></param>
- /// <returns></returns>
- Task<DeleteResult> Delete(Expression<Func<T, bool>> expression, bool isOne = false);
- /// <summary>
- /// 删除数据
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="isOne"></param>
- /// <returns></returns>
- Task<DeleteResult> Delete(FilterDefinition<T> filter, bool isOne = false);
- /// <summary>
- /// 根据条件获取结果列表
- /// </summary>
- /// <param name="expression">条件Expression</param>
- /// <returns>结果列表</returns>
- Task<List<T>> Find(Expression<Func<T, bool>> expression, ProjectionDefinition<T, T> projecter = null, SortDefinition<T> sorter = null);
- /// <summary>
- /// 批量更新
- /// </summary>
- /// <param name="updates"></param>
- /// <param name="options"></param>
- /// <returns></returns>
- Task<BulkWriteResult<T>> BulkWrite(List<WriteModel<T>> updates, BulkWriteOptions options = null);
- /// <summary>
- /// 根据条件获取结果列表
- /// </summary>
- /// <param name="filter">条件FilterDefinition</param>
- /// <param name="sorter">排序规则定义</param>
- /// <param name="projecter">查询字段定义</param>
- /// <returns>结果列表</returns>
- Task<List<T>> Find(FilterDefinition<T> filter, ProjectionDefinition<T, T> projecter = null, SortDefinition<T> sorter = null);
- }
- }
|