Я пытаюсь получить иерархию конкурентов из набора данных в 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 запроса, а не весь документ.