Mongodb通过查找字段分组构成一个数组

时间:2018-11-08 19:43:54

标签: mongodb mongodb-query aggregation-framework

数据库示例:

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

当我尝试使用聚合框架并用作者填充书籍时,填充的字段将转换为具有单个元素的数组。这是我的尝试:

db.books.find()

[{ _id: ObjectId("b1"), author: ObjectId("a1"), name: "Fight Club" }]

db.author.find()

[{ _id: ObjectId("a1"), name: "Chuck Palahniuk" }]

这为我提供了下一个结构:

db.books.aggregate([ 
  {$lookup: 
     { from: "authors", 
       localField: "author", 
       foreignField: "_id", 
       as: "author"
     } 
  } 
])

我需要的只是作者:{_id,name}。 我知道如何使用arrayElemAt获得此方法,但是这种方法看起来很奇怪

0 个答案:

没有答案