查询mongodb数据库以查找特定字段的所有值c#

时间:2016-03-31 10:51:48

标签: c# asp.net-mvc mongodb

我想查询mongodb数据库,使用c#查找两个日期之间特定字段下的所有值。 您能帮忙查询如何查询集合中的特定字段吗?

这是我的收藏"设计"我试着查询"高"

的所有价值
 public class Devise
{   
    public string parité { get; set; }
    public float low { get; set; }
    public float high { get; set; }
    public DateTime  date_observation { get; set; }

}

这是我的查询代码

public class Devisedata
{
    private IMongoDatabase _database;

    public async System.Threading.Tasks.Task<List<Devise>> GetDataDevise(DateTime inputDate1, DateTime inputDate2)
    {

        var collection = _database.GetCollection<Devise>("datafinance");
        var builder = Builders<Devise>.Filter;
        var filter = builder.Gte("date_observation", inputDate1) &
                     builder.Lt("date_observation", inputDate2.AddDays(1));


        var list = await collection.Find(filter).ToListAsync();
        return list;
    }
}

1 个答案:

答案 0 :(得分:0)

我认为“查找所有值”表示字段high中的所有不同值。 如果是这样,您可以执行以下示例:

var builder = Builders<Devise>.Filter;
var filter = builder.Gte("date_observation", inputDate1) &
                 builder.Lt("date_observation", inputDate2.AddDays(1));

var cursor = await collection.DistinctAsync<double>("high", match);
await cursor.ForEachAsync(doc => Console.WriteLine(doc));

有关详细信息,请参阅MongoCollection.Distinctdb.collection.distinct()

上述代码段在C# Driver v2.2.3中使用MongoDB v3.2进行了测试