Я пытаюсь найти более эффективное решение, возможно, когда вы не берете весь массив строк из коллекции, а просто возвращаете счет. По сути, countDocuments
эквивалент для строкового массива в одной пользовательской коллекции.
У меня есть решение, которое работает, но если этот список будет очень длинным, он не будет столь же хорошим с точки зрения производительности.
User.findById(
{ _id: req.params.id }, { _id: 0 })
.select("blacklistGroup").then((result) => {
let output = JSON.parse(JSON.stringify(result.blacklistGroup));
console.log(output.length + " + people");
});
Я надеялся получить пример более эффективного решения, более согласованного с countDocuments
, но для строкового массива. Я ценю помощь!
Вот определение модели blacklistGroup
blacklistGroup: [String]
пример коллекции
"blacklistGroup": [
"5e98e8e785e69146f841d239",
"5e9867ff5e72550988820dd3",
"5e98e90d85e69146f841d23a",
"5e98c950f4fb3f63b4634e30",
"5e99fcf3a506cf570056898b",
"5e99fd15a506cf570056898c",
"5e99fd3aa506cf570056898d",
"5e99fd64a506cf570056898e",
"5e99fda5a506cf570056898f"
]