通过 C# 进行简单的 LiteDB 查询我很挣扎!

问题描述

所以,我想尝试一下 LiteDB,但我有点挣扎!

尝试将日志数据写入其中。所以,到目前为止我所拥有的(简化)

A 类(数据结构)

private class PerBarData
{
    public DateTime ts { get; set; }
    public double o { get; set; }
    public double h { get; set; }
    public double l { get; set; }
    public double c { get; set; }
    public double v { get; set; }
    public Dictionary<int,double> r { get; set; }
}

我正在像这样将数据写入 LiteDB

// Get a collection (or create,if doesn't exist)
var col = db.GetCollection<PerBarData>("PerBarData");

Dictionary<int,double> dict = new Dictionary<int,double>();
for (int i=1; i<maxIndexes; i++)
{
    dict.Add(i,plotBIAS[i]);            
}                       

// Create your new customer instance
var pbd = new PerBarData
{ 
    ts = Time[1],o = Open[1],h = High[1],l = Low[1],c = Close[1],v = Volume[1],r = dict
};

// Insert new customer document (Id will be auto-incremented)
col.Insert(pbd);    

这似乎有效,因为确实正在添加记录。我可以在 LiteDB 工作室中看到这一点。我只能看到大概是序列化的文本。像这样的对象

/* 1 */
{
  "_id": {"$oid": "6009b32dfb2026288486321a"}
}
/* 2 */
{
  "_id": {"$oid": "6009b39dfb2026288486321b"}
}

所以 - 据推测,到目前为止,我是对的。所以,要检索一些数据。我想要的只是两个日期之间的数据,或者至少超过一个日期。所以,我试试这个

DateTime startDate = Time[CurrentBar-1];
DateTime endDate = Time[0]; 
    var col = db.GetCollection<PerBarData>("PerBarData");
    // Use LINQ to query documents (filter,sort,transform)
    var results = col.Find(Query.GTE("ts",startDate));
    foreach(var pbd in results)
    {
        PPrint(pbd.ts.ToString());
    }

但是,它通常只是挂在那里。当然,没有打印日期。我最初是在尝试 Query.Between 和 2 个日期。一样。

有人能把我推向正确的方向吗?我真的很想试一试。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)