SORU
18 EKİM 2011, Salı


Nasıl dizi boyutu bir (1) mongodb daha büyük olduğu belgeleri sorgulamak için

Aşağıdaki biçimde belgeler ile MongoDB bir koleksiyonum var:

{
  "_id" : ObjectId("4e8ae86d08101908e1000001"),
  "name" : ["Name"],
  "zipcode" : ["2223"]
}
{
  "_id" : ObjectId("4e8ae86d08101908e1000002"),
  "name" : ["Another ", "Name"],
  "zipcode" : ["2224"]
}

Şu anda dizinin belirli bir boyutu ile eşleşen belgeler:

db.accommodations.find({ name : { $size : 2 }})

Bu doğru name dizideki 2 elemanları ile belgeleri verir. Ancak, $gt komut name alanı 2'den daha büyük bir dizi boyutu olduğu tüm belgeleri iade edemem:

db.accommodations.find({ name : { $size: { $gt : 1 } }})

Nasıl bir boyut birden fazla name bir dizi ile tüm belgeler (geçerli veri yapısını değiştirmek zorunda kalmadan tercihen) seçebilir miyim?

CEVAP
5 Mart 2013, Salı


Sorgu nesne anahtarları sayısal dizi dizinleri kullanabilirsiniz şimdi MongoDB 2.2 bunu yapmak için daha etkili bir yolu var.

// Find all docs that have at least a second name array element.
db.accommodations.find({'name.1': {$exists: true}})

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • TechBalance

    TechBalance

    12 HAZİRAN 2011
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010