MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

търсене с условие в mongoose

Можете да използвате $ търсене с конвейер започвайки от MongoDB v3.6 ,

  • нека предаде localField _id като model_id променлива, можете да използвате полето вътре в тръбопровода за търсене, като използвате препратка $$,
  • тръбопровод за поставяне на $match етап и съответства на вашите изисквани условия и user_id състояние
  {
    $lookup: {
      from: "bookmarks",
      let: { model_id: "$_id" },
      pipeline: [
        {
          $match: {
            $expr: { $eq: ["$$model_id", "$model_id"] },
            user_id: objectId(req.user._id)
          }
        }
      ],
      as: "bookmarks"
    }
  }

Друга опция за MongoDB v3.4 ,

  • $filter за повторение на цикъл от bookmarks и получавате филтрирани отметки въз основа на условие
  {
    $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. Създаване на ограничена колекция от mongodb с помощта на c# api

  2. Ограничете използването на MongoDB RAM

  3. Добавяне на данни към съществуващ gridfs файл

  4. Как да задам критерии за изключване на документи от заявка?

  5. MongoDB:Използване на $sample с C# драйвер