MongoDB $oid против ObjectId

Я пытаюсь заставить работать запрос mongodb. Коллекция поставляется в формате:

{
"_id": {
    "$oid": "54651022bffebc03098b4567"
},
"browser": "ie",
"browser_version": "10.0 Desktop",
"os_version": "8",
"device": null,
"os": "Windows"
}

Следующие работы:

{
    "_id": {
        "$in": [
            {
                "$oid": "54651022bffebc03098b4567"
            },
            {
                "$oid": "54651022bffebc03098b4568"
            }
        ]
   }
}

Однако я получаю синтаксическую ошибку для следующего:

{
    "_id": {
        "$in": [
            ObjectId("54651022bffebc03098b4567"),
            ObjectId("54651022bffebc03098b4568")
        ]
    }
}

Есть похожие вопросы, которые предположили, что ObjectId должен работать:

Как создать запрос с ObjectId s, используя Java?

Параметр $all в mongodb не работает со списком ObjectId

1 ответ

Решение

Пользовательский интерфейс MongoLab использует расширенный JSON Strict MongoDB, поэтому идентификаторы объектов представлены таким образом, как во втором блоке кода OP:

{ "$oid": "<id>" }
Другие вопросы по тегам