Мы бы хотели отфильтровать коллекцию MongoDB, используя запрос overspecified find ().Например: collection A
, коллекция, которую мы хотим отфильтровать, содержит документы, которые содержат набор требований к атрибутам.Примерами являются документ a
, который содержит требование {req: age:{min:20,max:30}}
и b
, которое содержит требование {req: gender:male}
.
. У нас также есть документ d
из collection D
, содержащийследующие атрибуты: d = {age:21, gender: male}
.
В этом случае и a
, и b
должны быть в наборе документов, на которые имеет право d
, поскольку d
удовлетворяет требованиям для обоих.
Однако, если мы включим все атрибуты d
в запрос find
, мы получим db.A.find({d.age > req.age.min, d.age < req.age.max, d.gender: req.gender})
, что исключит a
и b
из нашего результата.
Что является лучшимспособ выбора всех документов в A
, для которых d
удовлетворяет требованиям, учитывая, что d
может содержать больше атрибутов, чем указано в требованиях документа в A, и что требования в A
и атрибуты в D
не фиксируются?Мы хотели бы не указывать каждый возможный атрибут в D
во всех A.req
документах, поскольку хотим, чтобы наши требования были максимально гибкими.