Предполагается, что виртуальный подсчет мангуста должен возвращать общее количество документов, удовлетворяющих ref, localField и ForeignField. Но когда я его использую, он возвращает общее количество документов, игнорируя ref, localField и ForeignField.
Я использовал его без опции подсчета, и он правильно вернул количество документов, удовлетворяющих ref, localField и ForeignField. Но когда я включаю count, он возвращает общее количество документов, игнорируя их.
AuthorSchema.virtual('books', {
ref: 'books',
localField: '_id',
foreignField: 'author_id'
});
возвращается число_книг: [ { Название: "Лисий сон", дата: "2019-01-13T00:44:22.564Z" } ]
но
AuthorSchema.virtual('books_count', {
ref: 'books',
localField: '_id',
foreignField: 'author_id'
});
возвращает 4, что является общим количеством коллекции книг
Но я ожидаю 1, потому что 1 удовлетворяет ref, localField и ForeignField





Согласно документации мангуста (ref. https://mongoosejs.com/docs/populate.html#count) Вы должны добавить count: true к опциям, что сделает ваш код таким:
AuthorSchema.virtual('books', {
ref: 'books',
localField: '_id',
foreignField: 'author_id',
count: true
});