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

Làm cách nào để gọi các thuộc tính nằm trong một tập hợp khác trong Mảng con?

Có thể có nhiều cách, một trong những cách là sử dụng $lookup như bạn đã thử

db.place.aggregate([
  { "$match": { "place": "Room 5" } },
  { $unwind: "$type_place_objects"  },
  {
    "$lookup": {
      "from": "type_place",
      "let": { tpo: "$type_place_objects._id" },
      "pipeline": [
        { $unwind: "$objects" },
        {
          $match: {
            $expr: {
              $eq: [ "$objects._id", "$$tpo" ]
            }
          }
        }
      ],
      "as": "join"
    }
  },
  {
    $addFields: {
      "join": { "$arrayElemAt": [ "$join", 0]
      }
    }
  },
  {
    $addFields: { "type_place_objects.name": "$join.objects.name" }
  },
  {
    $group: {
      _id: "$_id",
      place: { $first: "$place" },
      type_place_objects: { "$addToSet": "$type_place_objects" }
    }
  }
])

Làm việc Sân chơi Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách khôi phục một bộ sưu tập cụ thể trong MongoDB bằng cách sử dụng sao lưu logic

  2. làm thế nào để sử dụng giai đoạn tra cứu $ trong java với dữ liệu mùa xuân mongodb?

  3. Không thể đọc thuộc tính 'castForQuery' của không xác định tại castArrayFilters trong Node.js

  4. Tự động cập nhật nhiều tài liệu VÀ gửi lại chúng

  5. Truy vấn trong tài liệu lồng nhau trong mongodb