MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

wyszukiwanie z warunkiem w manguście

Możesz użyć $ wyszukiwanie za pomocą potoku od MongoDB v3.6 ,

  • pozwól przekazać localField _id jako model_id zmiennej, możesz użyć pola wewnątrz potoku wyszukiwania za pomocą referencji $$,
  • potok do umieszczenia $match etap i dopasować wymagane warunki i user_id warunek
  {
    $lookup: {
      from: "bookmarks",
      let: { model_id: "$_id" },
      pipeline: [
        {
          $match: {
            $expr: { $eq: ["$$model_id", "$model_id"] },
            user_id: objectId(req.user._id)
          }
        }
      ],
      as: "bookmarks"
    }
  }

Inna opcja dla MongoDB v3.4 ,

  • $filter do iteracji pętli bookmarks i uzyskaj filtrowane zakładki na podstawie warunku
  {
    $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. Spring MongoDB proces/wyciek wątku

  2. W jaki sposób identyfikator maszyny/nazwa hosta jest mapowany/odwzorowywany na 3 bajty w identyfikatorze obiektu?

  3. Jak dokładnie spring-data-mongodb obsługuje konstruktory podczas ponownego nawadniania obiektów?

  4. Suma poddokumentów w Mongoose

  5. Obiekt dokumentu MongoEngine utworzony przy użyciu from_json nie zapisuje