2014-11-14 1 views
6

Я пытаюсь работать с 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 должен работать:

How to create query with ObjectIds using java?

$all parameter in mongodb does not work with ObjectId list

+2

Какой клиент вы используете для входа и запуска этих запросов? Манго-оболочка? Java-программа? (Вы ссылаетесь на статью Java внизу.) Хотя многие концепции и детали одинаковы для всех клиентов, у многих есть свои особенности, которые делают их уникальными. Например, синтаксис ObjectId() в вашем третьем блоке кода я ожидал бы работать только в JavaScript (включая оболочку mongo). – jared

+0

Подождите, пока вы попробуете это на Java? Это не то, как вы делаете объекты в Java – Sammaye

+0

Я выполняю запросы в браузере Mongolab. Я также попытался запустить тот же запрос в php с конструктором MongoId(), который отлично работал –

ответ

16

MongoLab UI использует Strict MongoDB Extended JSON так идентификаторы объектов представлены константы выглядит, как и во втором кодовом блоке OP:

{ "$oid": "<id>" } 

 Смежные вопросы

  • Нет связанных вопросов^_^