我想查询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;
}
}
答案 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.Distinct和db.collection.distinct()。
上述代码段在C# Driver v2.2.3中使用MongoDB v3.2进行了测试