2017-04-15 5 views
0

これは処理しようとしているjsonデータです。私は2つの日付の間にメッセージを取得しようとしています。データは既にmongodbにインポートされています。ObjectIDが1つの配列内のMongodbクエリ

{ 
    "items": [ 
    { 
     "date": "2017-04-06T09:46:20.387420+00:00", 
     "from": { 
     "id": 4624534, 
     "links": { 
      "self": "https://api.hipchat.com/v2/user/4624534" 
     }, 
     "mention_name": "holy", 
     "name": "holy god", 
     "version": "Y1ML0DRJ" 
     }, 
     "id": "38f90558-2a23-458b-b87b-88dbdf997f7a", 
     "mentions": [], 
     "message": "ping", 
     "type": "message" 
    }, 
    { 
     "date": "2017-04-08T04:30:44.240163+00:00", 
     "from": { 
     "id": 4624534, 
     "links": { 
      "self": "https://api.hipchat.com/v2/user/4624534" 
     }, 
     "mention_name": "holy", 
     "name": "holy god", 
     "version": "Y1ML0DRJ" 
     }, 
     "id": "822b81e0-8077-41d7-bc50-fc9e4eba7d9e", 
     "mentions": [], 
     "message": "https://twitter.com/", 
     "type": "message" 
    }, 
    { 
     "attach_to": "822b81e0-8077-41d7-bc50-fc9e4eba7d9e", 
     "card": "{\"style\": \"link\", \"description\": \"From breaking news and entertainment to sports and politics, get the full story with all the live commentary.\", \"format\": \"medium\", \"url\": \"https://twitter.com/i/hello\", \"title\": \"Twitter. It's what's happening.\", \"id\": \"https://twitter.com/i/hello\", \"validation\": {\"safehtmls\": [\"activity.html\"], \"safeurls\": [\"url\", \"images.image\", \"images.image-small\", \"images.image-big\", \"icon.url\", \"[email protected]\", \"icon\", \"[email protected]\", \"thumbnail.url\"]}, \"type\": \"link\", \"thumbnail\": {\"url\": \"https://pbs.twimg.com/ext_tw_video_thumb/850335753108324353/pu/img/T8cV-7bGbbguiRGV.jpg\", \"width\": 599, \"type\": \"image/jpeg\", \"height\": 337}, \"icon\": {\"url\": \"https://abs.twimg.com/a/1491551685/img/t1/favicon.svg\", \"type\": \"image\"}}", 
     "color": "gray", 
     "date": "2017-04-08T04:30:44.825185+00:00", 
     "from": "Link", 
     "id": "7ccaf2b9-09bb-45ac-a025-c93f1f7df745", 
     "mentions": [], 
     "message": "\n\n\n<p><b><a href=\"https://twitter.com/i/hello\">Twitter. It's what's happening.</a></b></p>\n\n\n<p>From breaking news and entertainment to sports and politics, get the full story with all the live commentary.</p>\n\n", 
     "message_format": "html", 
     "notification_sender": { 
     "client_id": "888aec94-afee-45d8-89f7-ae077fcc4a7c", 
     "id": "hipchat-clinky", 
     "type": "addon" 
     }, 
     "type": "notification" 
    }, 
    { 
     "date": "2017-04-08T09:39:00.468858+00:00", 
     "from": { 
     "id": 4624534, 
     "links": { 
      "self": "https://api.hipchat.com/v2/user/4624534" 
     }, 
     "mention_name": "abcholy", 
     "name": "holy god", 
     "version": "Y1ML0DRJ" 
     }, 
     "id": "8a0de0e0-c312-490e-afcc-b0b16404cd67", 
     "mentions": [], 
     "message": "second message", 
     "type": "message" 
    }, 
    { 
     "date": "2017-04-11T15:32:39.367744+00:00", 
     "from": { 
     "id": 4624534, 
     "links": { 
      "self": "https://api.hipchat.com/v2/user/4624534" 
     }, 
     "mention_name": "abcholy", 
     "name": "holy god", 
     "version": "Y1ML0DRJ" 
     }, 
     "id": "4c1a090c-cb71-4548-8f96-a03ec2f3fb3b", 
     "mentions": [], 
     "message": "https://gist.github.com/abcholy/6d86352e73eab21cdd4fe78b37bd5aa0", 
     "type": "message" 
    }, 
    { 
     "date": "2017-04-11T15:33:42.730696+00:00", 
     "from": { 
     "id": 4624534, 
     "links": { 
      "self": "https://api.hipchat.com/v2/user/4624534" 
     }, 
     "mention_name": "abcholy", 
     "name": "holy god", 
     "version": "Y1ML0DRJ" 
     }, 
     "id": "a42b5267-937b-4de5-8c51-de4625742a4a", 
     "mentions": [], 
     "message": "hello", 
     "type": "message" 
    } 
    ], 
    "links": { 
    "self": "https://api.hipchat.com/v2/room/3452990/history" 
    }, 
    "maxResults": 100, 
    "startIndex": 0 
} 

今、私はこのモンゴクエリ入力された:

db.data.find({"_id" : ObjectId("58ee59f7f35120aaba26cff0")},{ items: { $elemMatch: { "date": {$gte:"2017-04-08T04:30:44.240163+00:00"} } } }) 

をしかし、それは最初の1である1つだけのアイテムを返します。私が$ lteを試してみると、単一のアイテムも返されますが、日付の指定に該当するすべてのアイテムが必要です。それを達成する方法?

+3

[MongoDBコレクションのオブジェクト配列内の照会された要素のみを取得する]の可能な複製(http://stackoverflow.com/questions/3985214/retrieve-only-the-queried-element-in-an-object-array -in-mongodb-collection) – Veeram

+0

afaikは重複していません。 –

答えて

0

日付フィールドは文字列ですが、その文字列より大きいものの概念はありません。 $ gteまたは$ lte操作を使用するには、ISODateまたは別の日付形式に変換する必要があります。

関連する問題