Как и просили, это невозможно. Проблема с сервером, на которую вы ссылались, все еще находится под "проблемами, в которых мы не уверены" .
MongoDB обладает некоторым интеллектом, связанным с использованием массивов, и я думаю, что это часть сложности, связанной с такой функцией.
Возьмите следующий запрос db.foo.find({ 'a.b' : 4 } )
. Этот запрос будет соответствовать следующим документам.
{ a: { b: 4 } }
{ a: [ { b: 4 } ] }
Так, что здесь делает "подстановочный знак"? db.foo.find( { a.* : 4 } )
Соответствует ли оно первому документу? А как насчет второго?
Кроме того, что это означает семантически? Как вы уже описали, запрос эффективно "находит документы, где любое поле в этом документе имеет значение 4" . Это немного необычно.
Есть ли конкретная семантика, которую вы пытаетесь достичь? Возможно, изменение структуры документа даст вам нужный запрос.