7

我有一个结构如下的 MongoDB 文档:

{
"_id": ObjectId("50cf904a07ef604c8cc3d091"),
"lessons": {
    "0": {
        "lesson_name": "View and Edit Lists",
        "release_time": ISODate("2012-12-17T00:00:00Z"),
        "requires_anim": false,
        "requires_qq": true
    },
    "1": {
        "lesson_name": "Leave a Tip",
        "release_time": ISODate("2012-12-18T00:00:00Z"),
        "requires_anim": false,
        "requires_qq": true
    }
}
}

我有很多这样的文件。我想获取课程发布时间大于或等于给定时间的所有文档。这是我写的查询:

db.lessons.find({"lessons.release_time":{"$gte": ISODate("2012-12-16")}});

但这不会返回任何文件。关于我做错了什么以及如何纠正它的任何想法。谢谢。

4

1 回答 1

14

这是我的测试结果:

> db.testc.insert( { lessons: [
     {release_time: ISODate("2012-12-17T00:00:00Z")},
     {release_time: ISODate("2012-12-18T00:00:00Z")}
  ] } )
> db.testc.find({"lessons.release_time":{"$gte": ISODate("2012-12-16")}})
{ "_id" : ObjectId("50cfa093ab08a4592c73f927"),
  "lessons" : [
      { "release_time" : ISODate("2012-12-17T00:00:00Z") },
      { "release_time" : ISODate("2012-12-18T00:00:00Z") }
   ] }

您的查询很好,但正如其他人所指出的那样,您的数据很可能不是作为数组结构化的。

于 2012-12-17T22:50:31.760 回答