Запрос, который вы хотите, следующий:
db.collection.find({"users":{"$not":{"$elemMatch":{"user":{$nin:[1,5,7]}}}}})
Это говорит, что найти все документы, которые не имеют элементов, которые находятся за пределами списка 1,5,7.
Если вы хотите проводить строгую проверку типов, вы можете определить свои модели.
Пример файловой архитектуры.
/src
/models
Person.js
Person.js
export default {
name: string,
age: number
}
В вашем файле
Импорт Person из './models/Person.js' // Путь к Person.js
[ 112]В качестве альтернативы, если вам не требуется строгая проверка типов и вы хотите подавить предупреждение, это должно сработать:
В вашем tsconfig.json ( https://www.typescriptlang.org /docs/handbook/tsconfig-json.html) вы можете добавить следующее:
из
"noImplicitAny": false,
в
"noImplicitAny": true,
Вы можете добавить аннотацию типа к вашей переменной arr
, и TS будет определять тип разрушенных полей.
См. пример на игровой площадке (примечание noImplicitAny
- true
в опциях, ошибка для arr0
и отсутствие ошибок для arr1
). Вывод типа для теории позади примера.