Я могу найти только примеры, чтобы определить, существуют ли конкретные ключи.MongoDB: Как определить конкретное значение не существует
У меня есть конкретные документы, в моем случае MongoDB, которые имеют поля, как это:
"actions" : [
{
"date" : "2015-03-09T15:28:03Z",
"reason" : "",
"begin_date" : "2015-03-09T15:28:03Z",
"end_date" : "2015-03-09T15:28:03Z",
"action_type" : "Block",
"performed_date" : "2015-03-09T15:28:03Z",
"active" : "on",
},
{
"date" : "2015-03-09T15:28:03Z",
"reason" : "",
"begin_date" : "2015-03-09T15:28:03Z",
"end_date" : "2015-03-09T15:28:03Z",
"action_type" : "Alert",
"performed_date" : "2015-03-09T15:28:03Z",
"active" : "on",
},
{
"date" : "2015-03-09T15:28:03Z",
"reason" : "None",
"begin_date" : "2015-03-09T15:28:03Z",
"end_date" : "2015-03-09T15:28:03Z",
"action_type" : "History",
"performed_date" : "2015-03-09T15:28:03Z",
"active" : "on",
}
],
Сейчас я пытаюсь создать запрос, чтобы вернуть все записи, где «ACTION_TYPE»: «История» не существует ,
Я знаю, что оператор $ exists может сказать мне, существует ли ключ «action_type», но я не могу найти никаких примеров, чтобы сообщить мне, где я могу указать, какое значение не существует.
В моей голове я хочу сказать, что это что-то вроде этого (но, очевидно, это не работает):
db.collection.find({ "actions":{"$elemMatch":{"action_type": "History"}} : { '$exists': false} })
Надеюсь, это намного проще, чем я делаю это, чтобы быть.
Да - как я и ожидал, намного проще, чем я думал. Работает отлично, спасибо! – gleb1783
@ gleb1783 Я не думаю, что это дает результаты, которые вы ожидали, и выше запрос не показывает никаких результатов. – Yogesh