MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

tra cứu với điều kiện trong mongoose

Bạn có thể sử dụng $ tra cứu bằng đường dẫn bắt đầu từ MongoDB v3.6 ,

  • để chuyển localField _id dưới dạng model_id , bạn có thể sử dụng trường bên trong đường dẫn tra cứu bằng cách sử dụng $$ tham chiếu,
  • đường dẫn để đặt $match giai đoạn và phù hợp với các điều kiện bắt buộc của bạn và user_id tình trạng
  {
    $lookup: {
      from: "bookmarks",
      let: { model_id: "$_id" },
      pipeline: [
        {
          $match: {
            $expr: { $eq: ["$$model_id", "$model_id"] },
            user_id: objectId(req.user._id)
          }
        }
      ],
      as: "bookmarks"
    }
  }

Tùy chọn khác cho MongoDB v3.4 ,

  • $ filter để lặp lại vòng lặp của bookmarks và nhận các dấu trang đã lọc trên cơ sở điều kiện
  {
    $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. truy vấn mongodb không có tên trường

  2. Xác thực từ xa và cục bộ không thành công trên Mongo DB 3.0.7 (được cài đặt trên Amazon EC2)

  3. MongoDB tổng hợp dự án chọn lọc

  4. có một cuộc gọi lại lỗi kết nối mongoose không

  5. MongoDB - Thêm vào một tập hợp và tăng dần