Есть ли способ минимизировать вывод $ graphlookup? - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь получить иерархию конкурентов из набора данных в MongoDB, мой код работает, насколько я могу судить, но вывод слишком труден для чтения из-за размера документов.

Iизучил $ project и пытается таким образом минимизировать размер поиска, но не может его выяснить.

db.companies.aggregate([
    {$match: {tag_list: { $regex: /computer/, $options: 'i' }, competitions:{$ne:[]}}},
    { $graphLookup: { from: "companies", startWith:
        "$competitions.competitor.name", connectFromField:"competitions.competitor.name",
        connectToField: "name", as: "competition_heirachy"}},
    {$limit:20},
    {$project: {_id:0, name:1, tag_list:1, competitions:1, competition_heirachy:1}}
]).pretty()

Вывод:

{
        "name" : "Prevail Resources",
        "tag_list" : "field-services, break-fix-services, technical-fix, computer-repair, desktop-support, it-staffing, it-consulting, dell-repair, ibm-repair, sony-repair, lexmark-repair, pc-repair, laptop-repair, notebook-repair, printer-repair",
        "competitions" : [
                {
                        "competitor" : {
                                "name" : "Modis IT",
                                "permalink" : "modis-it"
                        }
                },
                {
                        "competitor" : {
                                "name" : "Matrix Resources",
                                "permalink" : "matrix-resources"
                        }
                },
                {
                        "competitor" : {
                                "name" : "Innostaff",
                                "permalink" : "innostaff"
                        }
                }
        ],
        "competition_heirachy" : [
                {
                        "_id" : ObjectId("52cdef7e4bab8bd67529bbe0"),
                        "name" : "Matrix Resources",
                        "permalink" : "matrix-resources",
                        "crunchbase_url" : "http://www.crunchbase.com/company/matrix-resources",
                        "homepage_url" : "http://www.matrixresources.com",
                        "blog_url" : "",
                        "blog_feed_url" : "",
                        "twitter_username" : "matrixresources",
                        "category_code" : "enterprise",
                        "number_of_employees" : null,
                        "founded_year" : 1983,
                        "founded_month" : null,
                        "founded_day" : null,
                        "deadpooled_year" : null,
                        "deadpooled_month" : null,
                        "deadpooled_day" : null,
                        "deadpooled_url" : null,
                        "tag_list" : null
... and the rest of the "Matrix Resources" document continues

Мне нужно только показать поля в списке $ project запроса, а не весь документ.

...