2016-04-04 17 views
0

Bu nedenle, aşağıdaki toplama işlemine sahibim ve error invalid operatör $$ event.info aldım.MongoDB - Geçersiz İşleci - Toplama

db.days.aggregate([ 
    { 
     $match : { 'day' : 'March_1'} 
    }, 
    { 
     $project: 
     { 
      _id:0, 
      day: 1, 
      events: 
      { 
       $filter: 
       { 
        input: '$events', 
        as: 'event', 
        cond: 
        { 
         $and: 
         [ 
          { 
           $eq: ['$$event.year', '2002'] 
          }, 
          { 
           '$$event.info' : {$regex: '.*peseta.*'} 
          } 
         ] 
        } 
       } 
      } 
     } 
    } 
]) 

Olay bir tür nesneler ile dizi

{ 
    year : "x" 
    info : "y" 
} 

bazı bir açıklama bana yardım eder misiniz nedir?

Şimdiden teşekkürler!

+0

You '$ regex' kullanamaz' $ project' – styvane

+0

bir kullanabilmek için herhangi bir geçici çözüm var mı $ $ projesinde $ regex işlevi gibi? –

+0

Belirtildiği gibi, '$ regex' ifadesi için" mantıksal "bir karşılığı yoktur. Burada sizin durumunuzda diziyi '' gevşeyin '' ve sonra sıradan bir sorgu ifadesiyle '$ match'' gerekir. Aynı koşulu ilk $ $ match'ınıza da eklemenizi şiddetle tavsiye ediyorum. Aksi takdirde, sadece dizi elemanlarının koşullarla eşleşemeyeceği belgeleri seçersiniz. Tabii ki olası "boş" dizileri de iade etmeyi düşünmüyorsunuz. –

cevap

-1

Beklenen çıktınız nedir? sadece it.just bulmak kullanmak için size toplama çerçeve gerektirmeyen eşleştirmek istiyorsanız db.days.find({'day' : 'March_1',event :{$elemMatch :{'year', '2002',info' : {$regex: '.*peseta.*'}}})

+0

Neden bu olumsuz değerlendirildi? Yanlış varsa lütfen beni düzeltin –