У меня есть запрос mongodb, и я хочу найти слово с точным соответствием «Утверждено» - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть запрос mongodb, и я хочу найти слово «Approved» с точным соответствием в массиве с именем «Sales.Action».

Но другой массив «Sales.Action» имеет значение «Approve» который также возвращается.

Я пробовал $ elemMatch, но он все еще не работает.

Вот мой json:

{
"Sales" : [
    {
        "Action" : [
            "Approved"
        ],
        "Log" : [
            "Created on: 04/20/2020 42:04:04"
        ]
    },
    {
        "Action" : [
            "Approve",
            "Decline",
            "Edit",
            "Remarks"
        ],
        "Log" : [
            "Created on: 04/20/2020 42:04:04"
        ]
    },
    {
        "Action" : [
            "Approve",
            "Decline",
            "Edit",
            "Remarks"
        ],
        "Log" : [
            "Created on: 04/21/2020 412:04:04"
        ]
    },
    {
        "Action" : [
            "Approve",
            "Decline",
            "Edit",
            "Remarks"
        ],
        "Log" : [
            "Created on: 04/21/2020 412:04:04"
        ]
    },
    {
        "Action" : [
            "Approve",
            "Decline",
            "Edit",
            "Remarks"
        ],
        "Log" : [
            "Created on: 04/23/2020 44:04:04"
        ]
    }
]

}

Но мне нужен только один, чтобы вернуться.

1 Ответ

0 голосов
/ 25 апреля 2020

попробуйте этот код, я думаю, что это работает для вас

db.getCollection('your_collection').aggregate([
  { $unwind: '$Sales' },
  {
    $match: {'Sales.Action': 'Approve' }
  },
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...