首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LiteDB索引大小限制问题

LiteDB索引大小限制问题
EN

Stack Overflow用户
提问于 2016-03-09 20:01:11
回答 1查看 1.5K关注 0票数 0

我使用以下代码将项插入到数据库中:

代码语言:javascript
复制
using (var db = new LiteDatabase(dataFilePath))
{
    LiteCollection<DbEntry> collection = db.GetCollection<DbEntry>("stuff");
    collection.InsertBulk(sourceEntries.Select(Mapper.Map<DbEntry>));
}

我得到了这个错误:

代码语言:javascript
复制
LiteDB.LiteException: Index key must be less than 512 bytes
   at LiteDB.IndexService.AddNode(CollectionIndex index, BsonValue key, Byte level)
   at LiteDB.LiteCollection`1.Insert(T document)
   at LiteDB.LiteCollection`1.InsertBulk(IEnumerable`1 docs, Int32 buffer)

我认为我没有以任何方式摆弄任何索引,但如果有方法可以检查它,请让我知道。

DbEntry看起来有点像这样(没有明确的标识符):

代码语言:javascript
复制
public class DbEntry
{
    public string Message { get; set; }
    public string Source { get; set; }
}

dataFilePath每天都是不同的,有时它可以容纳200MB的数据,现在当文件有大约1.5MB的数据时,就会出现这个错误。

EN

回答 1

Stack Overflow用户

发布于 2016-07-03 20:13:54

对LiteDB不是很熟悉,但有一个建议:

您没有指定您使用的版本。它是稳定的1.4版,还是2.0版?有(was?)1.4中的每个条目限制为1 MB。看看如何将项目存储为文件。

我更愿意显式地设置一个条目ID,通过将字段命名为_id或通过[BsonId]。也许LiteDB正在使用整行作为ID,并在试图为您的表建立索引时被它卡住了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35891040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档