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 に答える