2014-11-14 17 views
6

Ben mongodb sorgu çalışmasına çalışıyorum. Koleksiyon formatında gelir:

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

aşağıdaki çalışır: Ancak

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

, aşağıdaki için bir sözdizimi hatası alıyorum:

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

önerdi benzer soru vardır ObjectId çalışmalıdır:

How to create query with ObjectIds using java?

$all parameter in mongodb does not work with ObjectId list

+2

? Mongo kabuğu mı? Bir Java programı mı? (En altta bir Java makalesine bağlanırsınız.) Birçok kavram ve ayrıntı tüm istemcilerde benzer olsa da, birçoğu onları benzersiz kılan kendine özgü bir tuhaflığa sahiptir. Örneğin, üçüncü kod bloğundaki ObjectId() sözdizimi, yalnızca JavaScript'de (mongo kabuğu dahil) çalışmayı beklerdim. – jared

+0

Bunu denemeyi Java'da bekle? Bu, Java – Sammaye

+0

'da nesne oluşturma şekliniz değil Mongolab tarayıcısında sorguları çalıştırıyorum. Ben de aynı soruyu iyi çalıştı MongoId() yapıcısı ile php çalıştıran denedim –

cevap

16

MongoLab UI Strict MongoDB Extended JSON böylece OP'nin ikinci kod bloğu olduğu gibi kimlikleri thusly temsil edilir Nesne kullanır:

girmenizi ve bu sorguları çalıştırmak için kullandığınız istemci
{ "$oid": "<id>" }