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