我有以下文件的MongoDB与elemMatch和日期字段不正确的结果
{
"_id" : ObjectId("52da43cd6f0a61e8a5059aaf"),
"assignments" : [
{
"project" : "abc",
"start" : ISODate("2012-12-31T18:30:00Z"),
"end" : ISODate("2013-06-29T18:30:00Z")
},
{
"project" : "efg",
"start" : ISODate("2013-06-30T18:30:00Z"),
"end" : ISODate("2014-03-30T18:30:00Z")
}
],
"eid" : "123",
"name" : "n1",
"uid" : "u1"
}
我试图找到一个特定的日期与下面的查询后启动的所有作业。但返回的数据很混乱,看起来不正确。 pl帮助我了解我做错了什么。
> db.test.find({uid:'u1'},{ assignments: { $elemMatch: {end: {$gte: new Date(2011,5,1) } } }}).pretty();
{
"_id" : ObjectId("52da43cd6f0a61e8a5059aaf"),
"assignments" : [
{
"project" : "abc",
"start" : ISODate("2012-12-31T18:30:00Z"),
"end" : ISODate("2013-06-29T18:30:00Z")
}
]
}
它应该返回两个项目吗?
我认为需要使用聚合框架工作和项目。将检查更多并更新线程 – user3209488