Вернуть все объекты в массиве для всех документов, которые соответствуют запросу в pymongo - PullRequest
0 голосов
/ 22 января 2020
{
        "_id": "PMC4702781",
        "OPEN_ACCESS": true,
        "affiliations": [{
            "id": 0,
            "is_EMBL": true,
            "is_EMBL_score": 0.9999918255796341,
            "Site": "EMBL-EBI",
            "Site_score": 0.9975567068280394,
            "sentence": "European Molecular Biology Laboratory, European Bioinformatics Institute, EMBL EBI, Hinxton, UK",
            "countries_affiliation": {
                "United Kingdom": 1
            },
            "cities_affiliation": {},
            "other_geoloc_affiliation": {}
        }, {
            "id": 1,
            "is_EMBL": false,
            "is_EMBL_score": 0.03726807106916446,
            "Site": "OTHERS",
            "Site_score": 0.7451486170637734,
            "sentence": "Welcome Trust Sanger Institute, Hinxton, UK",
            "countries_affiliation": {
                "United Kingdom": 1
            },
            "cities_affiliation": {},
            "other_geoloc_affiliation": {}
        }, {
            "id": 2,
            "is_EMBL": false,
            "is_EMBL_score": 0.003752957830705654,
            "Site": "OTHERS",
            "Site_score": 0.2714891673983528,
            "sentence": "Oregon State University, Corvallis, USA",
            "countries_affiliation": {
                "United States": 1
            },
            "cities_affiliation": {},
            "other_geoloc_affiliation": {}
        }],
        "nb_affiliations": 3,
        "Countries_affiliations": {
            "United Kingdom": 2,
            "United States": 1
        },
        "Cities_affiliations": {},
        "Other_geoloc_info": {},
        "nb_EMBL_affiliations": 1
    }

Я пробовал разные запросы, чтобы получить все "стран_аффилиации": {...} где "Сайт" отличается от "EMBL-EBI", но у меня ничего не получится, если у вас есть какие-либо идеи, пожалуйста, не стесняйтесь помогите мне.

Я пробовал что-то вроде где request_list это список "PMCXXXXX":

db.ROR_test.find({"_id":{ "$in": request_list},"affiliations":{"$elemMatch":{"Site":{"$ne":"EMBL-EBI"}}}},{"affiliations":{"$elemMatch":{"affiliations.Site":{"$ne":"EMBL-EBI"}}},"affiliations.countries_affiliation":1,"affiliations.id":1})
...