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

lookup dengan kondisi di luwak

Anda dapat menggunakan $ pencarian dengan pipeline mulai dari MongoDB v3.6 ,

  • biarkan melewati localField _id sebagai model_id variabel, Anda dapat menggunakan bidang di dalam saluran pencarian menggunakan referensi $$,
  • pipa untuk meletakkan $match panggung dan cocokkan dengan ketentuan yang Anda perlukan dan user_id kondisi
  {
    $lookup: {
      from: "bookmarks",
      let: { model_id: "$_id" },
      pipeline: [
        {
          $match: {
            $expr: { $eq: ["$$model_id", "$model_id"] },
            user_id: objectId(req.user._id)
          }
        }
      ],
      as: "bookmarks"
    }
  }

Opsi lain untuk MongoDB v3.4 ,

  • $filter untuk mengulangi loop bookmarks dan dapatkan bookmark yang difilter berdasarkan kondisi
  {
    $lookup: {
      from: "bookmarks",
      localField: "_id",
      foreignField: "model_id",
      as: "bookmarks"
    }
  },
  {
    $addFields: {
      bookmarks: {
        $filter: {
          input: "$bookmarks",
          cond: { $eq: ["$$this.user_id", objectId(req.user._id)] }
        }
      }
    }
  }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ekspresi Filter Kompas MongoDB ke ekspresi Go bson.M

  2. Impor data csv sebagai array di mongodb menggunakan mongoimport

  3. MongoDB $pesanBoleh

  4. Periksa apakah ada nilai dalam koleksi mongo

  5. Koneksi Go dan MongoDB tidak akan berfungsi dengan log panik tanpa server yang dapat dijangkau