У меня есть массив с именем group
, содержащий список идентификаторов, ниже приведен оператор поиска и заполнения, который отлично с этим работает, и я использую заполнение для получения дополнительных данных - запрос ниже:
var stories = await Story
.find( { 'group' : { $in : group } } )
.populate('group')
.populate('createdBy')
.sort('-created')
У меня есть сводный запрос (ниже), который делает то, что я хочу, но 1) он не использует значения в массиве group
, он просто возвращает все содержимое, и 2) я не получаю дополнительные данныедля полей group
и createdBy
, как я делаю для find
выше.
var spellings = await Spelling.aggregate([
{ "$sort": { "keyStageLevel": 1, "spellingLevel": 1 } },
{ "$group" : {
"_id": { "keyStageLevel": "$keyStageLevel", "class": "$class" },
"data": {
"$push": {
"spellingLevel": "$spellingLevel",
"class": "$class",
"name": "$name",
"spellings": "$spellings",
"created": "$created",
"_id": "$_id",
"group": "$group",
"createdBy": "$createdBy"
}
}
}},
{ "$sort": { "_id": 1 } }
])
Редактировать - вот пример документа правописания:
{
"_id":"5b1ff6f62bb1894efcf76ea0",
"spellings":["here","are","spellings"],
"name":"withclass",
"group":"5ab79a639083cf35339b880a",
"createdBy":"5ab79185d47b833506ff94b1",
"created":"2018-06-12T16:38:14.571Z",
}
Может кто-нибудь помочькак использовать значения в массиве group
в моем операторе aggregate
и как я могу добавить дополнительные данные для полей group
и createdBy
, как я делаю для find
?