c# - MongoDriver c# 按日期字段中的月份名称过滤
问题描述
要求:需要按月过滤mongo文档(数据以日期时间存储在mongo中)
使用的代码: var expenseMonthFilter = Builders<MyDocument>.Filter.Eq(i => i.ExpenseDate.Month, 12);
异常获取:Unable to determine the serialization information for i => i.ExpenseDate.Month.
解决方案
选择当月的所有文档时,条件需要检索所有 ExpenseDate 大于或等于该月开始日期且小于下个月开始日期的文档,如下所示:
var startOfMonth = new DateTime(selectedYear, selectedMonth, 1, 0, 0, 0, DateTimeKind.Utc);
var startOfNextMonth = startOfMonth.AddMonths(1);
var bldr = Builders<MyDocument>.Filter;
var expenseMonthFilter = bldr.And(
bldr.Gte(x => x.ExpenseDate, startOfMonth),
bldr.Lt(x => x.ExpenseDate, startOfNextMonth));
请注意,在上面的示例中, selectedYear 代表年份, selectedMonth 代表应检索数据的月份。
推荐阅读
- javascript - 用 reactjs 在 onClick 中调用两个函数
- python - 替换 Python 数据框特定列的特定值会引发“SettingWithCopyWarning”
- javascript - 如何使用引导程序使表格具有响应性和吸引力?
- azure - 我无法在 azure 上部署我的 nextjs 应用程序
- alias - 如何使用别名来简化 CUDA_VISIBLE_DEVICES
- javascript - 如何在java中构造一个类似json的body对象?
- laravel - 从控制器渲染图表以查看
- php - CodeIgniter 4 重定向功能不起作用
- python - Django manage.py:错误:无法识别的参数:runserver
- python - 使用 lmfit 和差分进化方法设置迭代限制