实例介绍
LiteDB是一个小巧、快速、轻量级的.NET NoSQL嵌入式数据库。
它是一个无服务器的文档存储,提供简单的API,类似于MongoDB。
LiteDB的代码完全由C#编写,适用于.NET 4.5 / NETStandard 1.3/2.0,存储在单个DLL文件中(小于450kb),具有线程安全性,完全支持ACID,并提供完整的事务支持。
此外,LiteDB还支持写入失败后的数据恢复(使用WAL日志文件),数据文件加密(使用DES(AES)加密算法),以及通过属性或流畅映射器API将POCO类映射到BsonDocument。
LiteDB还支持文件存储和流数据存储(类似于MongoDB中的GridFS),以及单个数据文件存储(类似于SQLite)。
它还支持为快速搜索索引文档字段,具有LINQ支持进行查询,以及类似SQL的命令以访问/转换数据。
LiteDB还提供了一个名为LiteDB Studio的良好UI,用于访问数据。
【实例截图】
【核心代码】
文件清单
└── LiteDB-4f77be4cc096653472bf06ebcf95eb399b1a4ff5
├── appveyor.yml
├── ConsoleApp1
│ ├── ConsoleApp1.csproj
│ ├── Program.cs
│ └── Tools
│ ├── Faker.cs
│ └── Faker.Names.cs
├── icon_64x64.png
├── LICENSE
├── LiteDB
│ ├── Client
│ │ ├── Database
│ │ │ ├── Collections
│ │ │ │ ├── Aggregate.cs
│ │ │ │ ├── Delete.cs
│ │ │ │ ├── Find.cs
│ │ │ │ ├── Include.cs
│ │ │ │ ├── Index.cs
│ │ │ │ ├── Insert.cs
│ │ │ │ ├── Update.cs
│ │ │ │ └── Upsert.cs
│ │ │ ├── ILiteCollection.cs
│ │ │ ├── ILiteDatabase.cs
│ │ │ ├── ILiteQueryable.cs
│ │ │ ├── ILiteRepository.cs
│ │ │ ├── LiteCollection.cs
│ │ │ ├── LiteDatabase.cs
│ │ │ ├── LiteQueryable.cs
│ │ │ └── LiteRepository.cs
│ │ ├── Mapper
│ │ │ ├── Attributes
│ │ │ │ ├── BsonCtorAttribute.cs
│ │ │ │ ├── BsonFieldAttribute.cs
│ │ │ │ ├── BsonIdAttribute.cs
│ │ │ │ ├── BsonIgnoreAttribute.cs
│ │ │ │ └── BsonRefAttribute.cs
│ │ │ ├── BsonMapper.cs
│ │ │ ├── BsonMapper.Deserialize.cs
│ │ │ ├── BsonMapper.Serialize.cs
│ │ │ ├── EntityBuilder.cs
│ │ │ ├── EntityMapper.cs
│ │ │ ├── Linq
│ │ │ │ ├── LinqExpressionVisitor.cs
│ │ │ │ ├── ParameterExpressionVisitor.cs
│ │ │ │ └── TypeResolver
│ │ │ │ ├── BsonValueResolver.cs
│ │ │ │ ├── ConvertResolver.cs
│ │ │ │ ├── DateTimeResolver.cs
│ │ │ │ ├── EnumerableResolver.cs
│ │ │ │ ├── GuidResolver.cs
│ │ │ │ ├── ICollectionResolver.cs
│ │ │ │ ├── ITypeResolver.cs
│ │ │ │ ├── MathResolver.cs
│ │ │ │ ├── NullableResolver.cs
│ │ │ │ ├── NumberResolver.cs
│ │ │ │ ├── ObjectIdResolver.cs
│ │ │ │ ├── RegexResolver.cs
│ │ │ │ └── StringResolver.cs
│ │ │ ├── MemberMapper.cs
│ │ │ ├── Reflection
│ │ │ │ ├── Reflection.cs
│ │ │ │ └── Reflection.Expression.cs
│ │ │ └── TypeNameBinder
│ │ │ ├── DefaultTypeNameBinder.cs
│ │ │ └── ITypeNameBinder.cs
│ │ ├── Shared
│ │ │ ├── SharedDataReader.cs
│ │ │ └── SharedEngine.cs
│ │ ├── SqlParser
│ │ │ ├── Commands
│ │ │ │ ├── Begin.cs
│ │ │ │ ├── Checkpoint.cs
│ │ │ │ ├── Commit.cs
│ │ │ │ ├── Create.cs
│ │ │ │ ├── Delete.cs
│ │ │ │ ├── Drop.cs
│ │ │ │ ├── Insert.cs
│ │ │ │ ├── ParseLists.cs
│ │ │ │ ├── Pragma.cs
│ │ │ │ ├── Rebuild.cs
│ │ │ │ ├── Rename.cs
│ │ │ │ ├── Rollback.cs
│ │ │ │ ├── Select.cs
│ │ │ │ └── Update.cs
│ │ │ └── SqlParser.cs
│ │ ├── Storage
│ │ │ ├── ILiteStorage.cs
│ │ │ ├── LiteFileInfo.cs
│ │ │ ├── LiteFileStream.cs
│ │ │ ├── LiteFileStream.Read.cs
│ │ │ ├── LiteFileStream.Write.cs
│ │ │ └── LiteStorage.cs
│ │ └── Structures
│ │ ├── ConnectionString.cs
│ │ ├── ConnectionType.cs
│ │ ├── QueryAny.cs
│ │ └── Query.cs
│ ├── Document
│ │ ├── Bson
│ │ │ └── BsonSerializer.cs
│ │ ├── BsonArray.cs
│ │ ├── BsonAutoId.cs
│ │ ├── BsonDocument.cs
│ │ ├── BsonType.cs
│ │ ├── BsonValue.cs
│ │ ├── DataReader
│ │ │ ├── BsonDataReader.cs
│ │ │ ├── BsonDataReaderExtensions.cs
│ │ │ └── IBsonDataReader.cs
│ │ ├── Expression
│ │ │ ├── BsonExpression.cs
│ │ │ ├── Methods
│ │ │ │ ├── Aggregate.cs
│ │ │ │ ├── DataTypes.cs
│ │ │ │ ├── Date.cs
│ │ │ │ ├── Math.cs
│ │ │ │ ├── Misc.cs
│ │ │ │ └── String.cs
│ │ │ └── Parser
│ │ │ ├── BsonExpressionAttributes.cs
│ │ │ ├── BsonExpressionFunctions.cs
│ │ │ ├── BsonExpressionOperators.cs
│ │ │ ├── BsonExpressionParser.cs
│ │ │ ├── BsonExpressionType.cs
│ │ │ ├── DocumentScope.cs
│ │ │ └── ExpressionContext.cs
│ │ ├── Json
│ │ │ ├── JsonReader.cs
│ │ │ ├── JsonSerializer.cs
│ │ │ └── JsonWriter.cs
│ │ └── ObjectId.cs
│ ├── Engine
│ │ ├── Disk
│ │ │ ├── DiskReader.cs
│ │ │ ├── DiskService.cs
│ │ │ ├── DiskWriterQueue.cs
│ │ │ ├── MemoryCache.cs
│ │ │ ├── Serializer
│ │ │ │ ├── BufferPool.cs
│ │ │ │ ├── BufferReader.cs
│ │ │ │ └── BufferWriter.cs
│ │ │ ├── StreamFactory
│ │ │ │ ├── FileStreamFactory.cs
│ │ │ │ ├── IStreamFactory.cs
│ │ │ │ ├── StreamFactory.cs
│ │ │ │ └── StreamPool.cs
│ │ │ └── Streams
│ │ │ ├── AesStream.cs
│ │ │ ├── ConcurrentStream.cs
│ │ │ └── TempStream.cs
│ │ ├── Engine
│ │ │ ├── Collection.cs
│ │ │ ├── Delete.cs
│ │ │ ├── Index.cs
│ │ │ ├── Insert.cs
│ │ │ ├── Pragma.cs
│ │ │ ├── Query.cs
│ │ │ ├── Rebuild.cs
│ │ │ ├── Recovery.cs
│ │ │ ├── Sequence.cs
│ │ │ ├── SystemCollections.cs
│ │ │ ├── Transaction.cs
│ │ │ ├── Update.cs
│ │ │ ├── Upgrade.cs
│ │ │ └── Upsert.cs
│ │ ├── EnginePragmas.cs
│ │ ├── EngineSettings.cs
│ │ ├── EngineState.cs
│ │ ├── FileReader
│ │ │ ├── FileReaderError.cs
│ │ │ ├── FileReaderV7.cs
│ │ │ ├── FileReaderV8.cs
│ │ │ ├── IFileReader.cs
│ │ │ ├── IndexInfo.cs
│ │ │ └── Legacy
│ │ │ ├── AesEncryption.cs
│ │ │ ├── BsonReader.cs
│ │ │ └── ByteReader.cs
│ │ ├── ILiteEngine.cs
│ │ ├── LiteEngine.cs
│ │ ├── Pages
│ │ │ ├── BasePage.cs
│ │ │ ├── CollectionPage.cs
│ │ │ ├── DataPage.cs
│ │ │ ├── HeaderPage.cs
│ │ │ └── IndexPage.cs
│ │ ├── Pragmas.cs
│ │ ├── Query
│ │ │ ├── IndexQuery
│ │ │ │ ├── IndexAll.cs
│ │ │ │ ├── Index.cs
│ │ │ │ ├── IndexEquals.cs
│ │ │ │ ├── IndexIn.cs
│ │ │ │ ├── IndexLike.cs
│ │ │ │ ├── IndexRange.cs
│ │ │ │ ├── IndexScan.cs
│ │ │ │ └── IndexVirtual.cs
│ │ │ ├── Lookup
│ │ │ │ ├── DatafileLookup.cs
│ │ │ │ ├── IDocumentLookup.cs
│ │ │ │ └── IndexKeyLoader.cs
│ │ │ ├── Pipeline
│ │ │ │ ├── BasePipe.cs
│ │ │ │ ├── DocumentCacheEnumerable.cs
│ │ │ │ ├── GroupByPipe.cs
│ │ │ │ └── QueryPipe.cs
│ │ │ ├── Query.cs
│ │ │ ├── QueryExecutor.cs
│ │ │ ├── QueryOptimization.cs
│ │ │ └── Structures
│ │ │ ├── GroupBy.cs
│ │ │ ├── IndexCost.cs
│ │ │ ├── OrderBy.cs
│ │ │ ├── QueryPlan.cs
│ │ │ └── Select.cs
│ │ ├── Services
│ │ │ ├── CollectionService.cs
│ │ │ ├── DataService.cs
│ │ │ ├── IndexService.cs
│ │ │ ├── LockService.cs
│ │ │ ├── RebuildService.cs
│ │ │ ├── SnapShot.cs
│ │ │ ├── TransactionMonitor.cs
│ │ │ ├── TransactionService.cs
│ │ │ └── WalIndexService.cs
│ │ ├── Sort
│ │ │ ├── SortContainer.cs
│ │ │ ├── SortDisk.cs
│ │ │ └── SortService.cs
│ │ ├── Structures
│ │ │ ├── CollectionIndex.cs
│ │ │ ├── CursorInfo.cs
│ │ │ ├── DataBlock.cs
│ │ │ ├── Done.cs
│ │ │ ├── FileOrigin.cs
│ │ │ ├── IndexNode.cs
│ │ │ ├── LockMode.cs
│ │ │ ├── PageAddress.cs
│ │ │ ├── PageBuffer.cs
│ │ │ ├── PagePosition.cs
│ │ │ ├── Pragma.cs
│ │ │ ├── RebuildOptions.cs
│ │ │ ├── TransactionPages.cs
│ │ │ └── TransactionState.cs
│ │ └── SystemCollections
│ │ ├── Register.cs
│ │ ├── SysCols.cs
│ │ ├── SysDatabase.cs
│ │ ├── SysDump.cs
│ │ ├── SysFile.cs
│ │ ├── SysFileCsv.cs
│ │ ├── SysFileJson.cs
│ │ ├── SysIndexes.cs
│ │ ├── SysOpenCursors.cs
│ │ ├── SysPageList.cs
│ │ ├── SysQuery.cs
│ │ ├── SysSequences.cs
│ │ ├── SysSnapshots.cs
│ │ ├── SystemCollection.cs
│ │ └── SysTransactions.cs
│ ├── LiteDB.csproj
│ ├── LiteDB.snk
│ └── Utils
│ ├── AsyncManualResetEvent.cs
│ ├── BufferSlice.cs
│ ├── Collation.cs
│ ├── Constants.cs
│ ├── Encoding.cs
│ ├── ExtendedLengthHelper.cs
│ ├── Extensions
│ │ ├── BufferExtensions.cs
│ │ ├── BufferSliceExtensions.cs
│ │ ├── DateExtensions.cs
│ │ ├── DictionaryExtensions.cs
│ │ ├── ExpressionExtensions.cs
│ │ ├── HashSetExtensions.cs
│ │ ├── IOExceptionExtensions.cs
│ │ ├── LinqExtensions.cs
│ │ ├── StreamExtensions.cs
│ │ ├── StringExtensions.cs
│ │ └── TypeInfoExtensions.cs
│ ├── FileHelper.cs
│ ├── LCID.cs
│ ├── LiteException.cs
│ ├── MimeTypeConverter.cs
│ ├── Pool
│ │ ├── ArrayPool.cs
│ │ └── BucketHelper.cs
│ ├── Randomizer.cs
│ ├── Result.cs
│ ├── Tokenizer.cs
│ └── TryCatch.cs
├── LiteDB.Benchmarks
│ ├── Benchmarks
│ │ ├── BenchmarkBase.cs
│ │ ├── Constants.cs
│ │ ├── Deletion
│ │ │ └── DeletionBenchmark.cs
│ │ ├── Generator
│ │ │ └── FileMetaDataGenerationDatabaseBenchmark.cs
│ │ ├── Insertion
│ │ │ ├── InsertionBasicBenchmark.cs
│ │ │ ├── InsertionIgnoreExpressionPropertyBenchmark.cs
│ │ │ └── InsertionInMemoryBenchmark.cs
│ │ └── Queries
│ │ ├── QueryAllBenchmark.cs
│ │ ├── QueryCompoundIndexBenchmark.cs
│ │ ├── QueryCountBenchmark.cs
│ │ ├── QueryIgnoreExpressionPropertiesBenchmark.cs
│ │ ├── QueryMultipleParametersBenchmark.cs
│ │ ├── QuerySimpleIndexBenchmarks.cs
│ │ └── QueryWithDateTimeOffsetBenchmark.cs
│ ├── LiteDB.Benchmarks.csproj
│ ├── Models
│ │ ├── FileMetaBase.cs
│ │ ├── FileMetaWithExclusion.cs
│ │ └── Generators
│ │ └── FileMetaGenerator.cs
│ └── Program.cs
├── LiteDB.Shell
│ ├── Commands
│ │ ├── Close.cs
│ │ ├── Ed.cs
│ │ ├── Help.cs
│ │ ├── IShellCommand.cs
│ │ ├── Open.cs
│ │ ├── Pretty.cs
│ │ ├── Quit.cs
│ │ ├── Run.cs
│ │ ├── ShowCollections.cs
│ │ └── Version.cs
│ ├── LiteDB.Shell.csproj
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── Shell
│ │ ├── Display.cs
│ │ ├── Env.cs
│ │ ├── InputCommand.cs
│ │ └── ShellProgram.cs
│ └── Utils
│ ├── OptionSet.cs
│ ├── StringExtensions.cs
│ └── StringScanner.cs
├── LiteDB.sln
├── LiteDB.Stress
│ ├── Examples
│ │ ├── test-01.xml
│ │ └── test-02.xml
│ ├── LiteDB.Stress.csproj
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ └── Test
│ ├── InsertField.cs
│ ├── InsertTaskItem.cs
│ ├── ITaskItem.cs
│ ├── SqlTaskItem.cs
│ ├── TestExecution.cs
│ ├── TestFile.cs
│ ├── ThreadInfo.cs
│ └── TimeSpanEx.cs
├── LiteDB.Tests
│ ├── Database
│ │ ├── AutoId_Tests.cs
│ │ ├── ConnectionString_Tests.cs
│ │ ├── Create_Database_Tests.cs
│ │ ├── Crud_Tests.cs
│ │ ├── Database_Pragmas_Tests.cs
│ │ ├── DbRef_Include_Tests.cs
│ │ ├── DbRef_Index_Tests.cs
│ │ ├── DbRef_Interface_Tests.cs
│ │ ├── Delete_By_Name_Tests.cs
│ │ ├── DeleteMany_Tests.cs
│ │ ├── Document_Size_Tests.cs
│ │ ├── FindAll_Tests.cs
│ │ ├── IndexMultiKeyLinq_Tests.cs
│ │ ├── IndexSortAndFilter_Tests.cs
│ │ ├── MultiKey_Mapper_Tests.cs
│ │ ├── NonIdPoco_Tests.cs
│ │ ├── PredicateBuilder_Tests.cs
│ │ ├── Query_Min_Max_Tests.cs
│ │ ├── Site_Tests.cs
│ │ ├── Snapshot_Upgrade_Tests.cs
│ │ ├── Storage_Tests.cs
│ │ └── Upgrade_Tests.cs
│ ├── Document
│ │ ├── Bson_Tests.cs
│ │ ├── Case_Insensitive_Tests.cs
│ │ ├── Decimal_Tests.cs
│ │ ├── Implicit_Tests.cs
│ │ ├── Json_Tests.cs
│ │ └── ObjectId_Tests.cs
│ ├── Engine
│ │ ├── Collation_Tests.cs
│ │ ├── Create_Database_Tests.cs
│ │ ├── Crypto_Tests.cs
│ │ ├── DropCollection_Tests.cs
│ │ ├── Index_Tests.cs
│ │ ├── ParallelQuery_Tests.cs
│ │ ├── Rebuild_Crash_Tests.cs
│ │ ├── Rebuild_Tests.cs
│ │ ├── Transactions_Tests.cs
│ │ ├── Update_Tests.cs
│ │ └── UserVersion_Tests.cs
│ ├── Expressions
│ │ ├── Expressions_Exec_Tests.cs
│ │ └── Expressions_Tests.cs
│ ├── Internals
│ │ ├── Aes_Tests.cs
│ │ ├── BasePage_Tests.cs
│ │ ├── BufferWriter_Tests.cs
│ │ ├── CacheAsync_Tests.cs
│ │ ├── Cache_Tests.cs
│ │ ├── Disk_Tests.cs
│ │ ├── Document_Tests.cs
│ │ ├── ExtendedLength_Tests.cs
│ │ ├── FreePage_Tests.cs
│ │ ├── FreeSlot_Tests.cs
│ │ ├── HeaderPage_Tests.cs
│ │ ├── Pragma_Tests.cs
│ │ └── Sort_Tests.cs
│ ├── Issues
│ │ ├── Issue1585_Tests.cs
│ │ ├── Issue1651_Tests.cs
│ │ ├── Issue1695_Tests.cs
│ │ ├── Issue1701_Tests.cs
│ │ ├── Issue1838_Tests.cs
│ │ ├── Issue1860_Tests.cs
│ │ ├── Issue1865_Tests.cs
│ │ ├── Issue2112_Tests.cs
│ │ ├── Issue2127_Tests.cs
│ │ ├── Issue2129_Tests.cs
│ │ └── Issue2417_Tests.cs
│ ├── LiteDB.Tests.csproj
│ ├── Mapper
│ │ ├── CustomInterface_Tests.cs
│ │ ├── CustomMappingCtor_Tests.cs
│ │ ├── CustomMapping_Tests.cs
│ │ ├── DbRefAbstract_Tests.cs
│ │ ├── Dictionary_Tests.cs
│ │ ├── Enum_Tests.cs
│ │ ├── GenericMap_Tests.cs
│ │ ├── LinqBsonExpression_Tests.cs
│ │ ├── LinqEval_Tests.cs
│ │ ├── Mapper_Tests.cs
│ │ ├── Records_Tests.cs
│ │ └── StructField_Tests.cs
│ ├── Query
│ │ ├── Aggregate_Tests.cs
│ │ ├── GroupBy_Tests.cs
│ │ ├── Include_Tests.cs
│ │ ├── OrderBy_Tests.cs
│ │ ├── Person_Tests.cs
│ │ ├── QueryApi_Tests.cs
│ │ ├── Select_Tests.cs
│ │ └── Where_Tests.cs
│ ├── Resources
│ │ ├── Issue2417_MyData.db
│ │ ├── Issue2417_TestCacheDb.db
│ │ ├── person.json
│ │ ├── v4.db
│ │ └── zip.json
│ ├── Utils
│ │ ├── AssertEx.cs
│ │ ├── DataGen.cs
│ │ ├── Faker.cs
│ │ ├── Faker.Names.cs
│ │ ├── LiteEngineExtensions.cs
│ │ ├── Models
│ │ │ ├── Person.cs
│ │ │ └── Zip.cs
│ │ └── TempFile.cs
│ └── xunit.runner.json
└── README.md
75 directories, 401 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论