Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MongoDb中指定日期、月份和日期_C#_Mongodb_Nosql - Fatal编程技术网

C# 如何在MongoDb中指定日期、月份和日期

C# 如何在MongoDb中指定日期、月份和日期,c#,mongodb,nosql,C#,Mongodb,Nosql,难以从客户处查询Birtday(日期时间) Query<Customer>.Where(a => a.Birthday.Month == startDate.Month && a.Birthday.Day == startDate.Day) 这是我提出的解决方案 var script = new BsonJavaScript("return ((this.Birthday.getMonth() == 0) && (this.Birthday.g

难以从客户处查询Birtday(日期时间)

Query<Customer>.Where(a => a.Birthday.Month == startDate.Month && a.Birthday.Day == startDate.Day)

这是我提出的解决方案

var script = new BsonJavaScript("return ((this.Birthday.getMonth() == 0) && (this.Birthday.getDate() == 5))");

var mongoQuery = MongoDB.Driver.Builders.Query.Where(script);

var ret = GetCollection<Customer>().Find(mongoQuery);
var script=newbsonjavascript(“return((this.birth.getMonth()=0)和&(this.birth.getDate()=5));
var mongoQuery=MongoDB.Driver.Builders.Query.Where(脚本);
var ret=GetCollection().Find(mongoQuery);

如果您能够更改模式,我建议您这样做,并用嵌入式文档替换生日:

{
    _id: Object(),
    FirstName: string,
    ...
    Birthday: {
        date: ISODate(),
        year: int,
        month: int,
        day: int
    }
}
并在首次插入文档之前预先计算应用程序逻辑中的年、月和日。这将允许您在问题中指定的查询


在解决方案中使用
$where
对于查询来说效率非常低,在插入时消耗成本可能是值得的。

我认为我们需要更多关于客户模型的详细信息来帮助。更新了问题。谢谢
{
    _id: Object(),
    FirstName: string,
    ...
    Birthday: {
        date: ISODate(),
        year: int,
        month: int,
        day: int
    }
}