2014-11-14 13 views
6

Tôi đang cố gắng truy vấn mongodb hoạt động. Bộ sưu tập được lấy định dạng:

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

Các công trình sau đây:

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

Tuy nhiên, tôi nhận được một lỗi cú pháp sau:

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

Có một câu hỏi tương tự cho rằng ObjectId sẽ hoạt động:

How to create query with ObjectIds using java?

$all parameter in mongodb does not work with ObjectId list

+2

Những khách hàng mà bạn đang sử dụng để nhập và chạy các truy vấn này? Vỏ maio? Một chương trình Java? (Bạn liên kết đến một bài viết Java ở phía dưới.) Trong khi nhiều khái niệm và chi tiết tương tự nhau trên tất cả các máy khách, nhiều người có những quirks riêng của họ làm cho chúng trở nên độc đáo. Ví dụ, cú pháp ObjectId() trong khối mã thứ ba của bạn mà tôi mong đợi chỉ làm việc trong JavaScript (bao gồm cả trình bao mongo). – jared

+0

Đợi bạn thử điều này trong Java? Đó không phải là cách bạn tạo ra các đối tượng trong Java – Sammaye

+0

Tôi đang chạy các truy vấn trong trình duyệt Mongolab. Tôi cũng đã thử chạy cùng một truy vấn trong php với hàm xây dựng MongoId() đã hoạt động tốt –

Trả lời

16

Các MongoLab UI sử dụng Strict MongoDB Extended JSON nên Object ID được đại diện thusly, như trong khối mã thứ hai của OP:

{ "$oid": "<id>" } 
Các vấn đề liên quan