Невозможно запросить ключи документа таким способом. Вы можете искать точные совпадения, используя $exists
, но вы не можете найти имена клавиш, которые соответствуют шаблону.
Я предполагаю (возможно, неправильно), что вы пытаетесь найти документы, которые имеют поддокумент URL, и что не все документы будут иметь это? Почему бы не выдвинуть информацию о типе ниже уровня, например:
{
payload: {
type: "url",
url: "Facebook.com",
...
}
}
Тогда вы можете запросить как:
db.foo.find({"payload.type": "url", ...})
Я также был бы упущен, если бы не заметил, что вам не следует использовать точки (.
) - это имена ключей в MongoDB. В некоторых случаях возможно создание подобных документов, но это вызовет большую путаницу, когда вы попытаетесь выполнить запрос во встроенные документы (где Mongo использует точку в качестве «разделителя пути»).