Я использую пакет jenssegers mongodb в laravel для запросов к mongodb. - PullRequest
0 голосов
/ 06 сентября 2018
{ 
    "_id" : ObjectId("5b8fb8bd1fc32d075c337d7c"), 
    "current" : {
        "title" : "My title", 
        "description" : "This is my description", 
    }, 
    "history" : {
        "1517493599" : {
            "from" : NumberInt(1483264800), 
            "from_date" : "2017-01-01 10:00:00", 
            "to" : NumberInt(1517493599), 
            "to_date" : "2018-02-01 13:59:59", 
            "data" : {
                "title" : "This is older title", 
                "description" : "Some older description", 
            }
        }, 
        "1483264800" : {
            "from" : NumberInt(1465171200), 
            "from_date" : "2016-06-06 00:00:00", 
            "to" : NumberInt(1483264800), 
            "to_date" : "2017-01-01 10:00:00", 
            "data" : {
                "title" : "Oldest title", 
                "description" : "Oldest description", 
            }
        }
    }, 
    "updated_at" : ISODate("2018-09-05T11:06:37.000+0000"), 
    "created_at" : ISODate("2018-09-05T11:06:37.000+0000")
}

Под «историей» все элементы хранятся в массиве, которые перечислены в виде значений меток времени Unix (используемых в качестве ключевых элементов массива)

Легко найти данные в массиве истории, если я знаю точное время Unix:

$data = DbData::where('history.1517493599.data.title', '=', 'This is older title')->get();

Как мне найти элементы в массиве истории, учитывая, что я не знаю точное время Unix?

...