C# 连接mongo 将标准时间区间转为10位时间戳区间并查询
时间: 2024-11-06 11:36:13 浏览: 23
在C#中连接MongoDB,你需要使用MongoDB的官方驱动程序MongoDB.Driver,首先安装它,然后可以创建一个时间区间转换为10位时间戳范围的函数,用于查询特定时间段的数据。以下是基本步骤:
1. 安装MongoDB.NET驱动:
```sh
dotnet add package MongoDB.Driver
```
2. 创建连接和数据库实例:
```csharp
var mongoClient = new MongoClient("mongodb://localhost:27017");
var database = mongoClient.GetDatabase("your_database_name");
var collection = database.GetCollection<BsonDocument>("your_collection_name");
```
3. 定义一个辅助函数,将`BsonDate`类型的时间转换为10位时间戳:
```csharp
private static long DateToTimestamp(BsonDate date)
{
return date.ToDateTimeUtc().Ticks / TimeSpan.TicksPerMillisecond;
}
// 或者处理两个边界点
private static (long start, long end) DateRangeToTimestamps(BsonDate startDate, BsonDate endDate)
{
return (DateToTimestamp(startDate), DateToTimestamp(endDate));
}
```
4. 查询数据时,假设`YourDocument`是你文档中的模型类,包含`YourDateField`字段:
```csharp
var startTime = DateToTimestamp(new BsonDate(yourStartDateTime.ToUniversalTime()));
var endTime = DateToTimestamp(new BsonDate(yourEndDateTime.ToUniversalTime()));
var filter = Builders<YourDocument>.Filter.And(
Builders<YourDocument>.Filter.Gte("YourDateField", startTime),
Builders<YourDocument>.Filter.Lt("YourDateField", endTime));
var results = collection.Find(filter).ToList();
```
阅读全文