Pymongo: Как я могу получить несколько результатов из mongodb? - PullRequest
0 голосов
/ 06 сентября 2018

Я хотел бы получить каждый 'ecg_raw' в 'data' itmes, который основан на 'name' с python3 pymongo.

Если я знаю 'name' и 'time_info', как я могу получить 4 данных ecg_raw, которые time_info == '2018-09-01 00: 00: 03'

Я хочу получить все данные ecg_raw, такие как [[8,2], [1,10], [9,4], [1,9]]

Я пытался

db.g.find({"data":{"$elemMatch":{"time_info":"2018-09-01 00:00:03"}}},{"name":1,"data":{"$elemMatch":{"time_info":"2018-09-01 00:00:03"}}})

но возвращает только одно значение, например bottom.

{'_id': ObjectId('5b90d401219e9c9f72cac8c4'), 'name': 'testDog3', 'data': [{'time_info': '2018-09-01 00:00:03', 'ecg_raw': [8, 2]}]}

Пожалуйста, помогите мне.

> db.g.find().pretty()
{
"_id" : ObjectId("5b90d401219e9c9f72cac8c4"),
"name" : "testDog3",
"data" : [
    {
        "time_info" : "2018-09-01 00:00:03",
        "ecg_raw" : [
            8,
            2
        ]
    },
    {
        "time_info" : "2018-09-01 00:00:03",
        "ecg_raw" : [
            1,
            10
        ]
    },
    {
        "time_info" : "2018-09-01 00:00:03",
        "ecg_raw" : [
            9,
            4
        ]
    },
    {
        "time_info" : "2018-09-01 00:00:03",
        "ecg_raw" : [
            1,
            9
        ]
    },
    {
        "time_info" : "2018-09-01 00:00:04",
        "ecg_raw" : [
            10,
            6
        ]
    },
    {
        "time_info" : "2018-09-01 00:00:04",
        "ecg_raw" : [
            1,
            6
        ]
    }
]
}

1 Ответ

0 голосов
/ 06 сентября 2018

попробуйте это.

aggregate ([{$ match: {'name': 'testDog3'}}, {"$ unwind": "$ data"}, {"$ match": {"data.time_info": "2018-09 -01 00:00:03 "}}])

...