MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Redact di mongodb tampaknya tidak jelas bagi saya

$redact tahap dimulai pada dokumen root dan bidangnya, dan hanya jika dokumen tersebut memenuhi kondisi ke $$DESCEND , ia memeriksa sub-dokumen yang disertakan dalam dokumen itu. Itu berarti hal pertama yang dilakukan $redact dengan dokumen Anda adalah memeriksa ini:

{
    "_id" : ObjectId("50b59cd75bed76f46522c34e"),
    "student_id" : 0,
    "class_id" : 2,
    "scores" : [] // Some array. I will look at this later.
}

Ia bahkan tidak menemukan type field di sini, jadi $eq: [ "$type" , "exam" ] adalah palsu. Apa yang Anda suruh $redact lakukan ketika kondisinya salah? else: "$$PRUNE" , sehingga seluruh dokumen dipangkas sebelum sub-dokumen diperiksa.

Sebagai solusinya, uji apakah $type adalah "exam" atau tidak ada. Anda tidak secara eksplisit meminta solusi yang berhasil, jadi saya akan menyerahkannya sebagai latihan bagi Anda untuk mengetahui cara melakukannya.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Metode pencarian luwak dengan $or condition tidak berfungsi dengan baik

  2. Operator Kueri $type MongoDB

  3. Temukan String di dalam String di SQL

  4. Menggunakan CouchDb di ponsel android dan mongodb di sisi server

  5. Bigbluebutton setup html5 dev client login ke meeting dengan join api call respon html kosong