Как искать документ с помощью ObjectId в MongoDB (Anypoint Studio)

Я использую AnypointStudio для создания API, и я пытаюсь найти документ, используя ObjectId в MongoDB, но не могу заставить его работать. Я пробовал искать с использованием других полей в коллекции, и он отлично работает. Вот значение Find query, которое я сейчас использую.

output application/json
---
{   
    "_id" : "5c088f4264c73358f4f7e3c0"
}

Вот пример результата, который я получил при поиске с использованием поля uid.

{
    "_id": {
        "$oid": "5c088f4264c73357f4f7e3c0"
    },
    "uid": "test",
    "name": "test",
    "validUser": true,
    "oauth_client_id": "55628a5730ad44719e63b34c36604401",
    "customer": "test customer"
}

Может ли кто-нибудь помочь мне найти документ с помощью ObjectId? Спасибо


person Alps    schedule 08.08.2019    source источник


Ответы (2)


Я наконец получил ответ с помощью некоторых экспериментов. Я заметил структуру поля _id и попытался использовать это в запросе "_id" : {"$oid" : "5c088f4264c73358f4f7e3c0"}, но не работал, поскольку символ $ является ссылочным символом (?). Я попробовал использовать \ до $, и он работает.

output application/json
---
{
    "_id" : {"\$oid" : "5c088f4264c73358f4f7e3c0"}
}
person Alps    schedule 08.08.2019

Пример, который вы показываете, должен работать, вам может потребоваться обернуть его следующим образом

{   
    _id : ObjectId("5c088f4264c73358f4f7e3c0") 
}

Надеюсь это поможет

person Shmili Breuer    schedule 08.08.2019
comment
Спасибо за ответ. Я пробовал это, но у меня возникла Unable to resolve reference of ObjectId. ошибка в текстовом поле "Найти запрос". - person Alps; 08.08.2019