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

Tra cứu và sắp xếp bộ sưu tập nước ngoài

Bạn không cần phải $ unwind bài tập mảng vì nó đã chứa mảng _id s và sử dụng $ ReplaceRoot thay vì thực hiện $ project

Users.aggregate([
  { "$match": { "_id" : ObjectId("whateverTheUserIdIs") }}, 
  { "$lookup": {
    "from" : "workouts", 
    "localField" : "workouts", 
    "foreignField" : "_id", 
    "as" : "workoutDocumentsArray"
  }},
  { "$unwind": "$workoutDocumentsArray" },
  { "$replaceRoot": { "newRoot": "$workoutDocumentsArray" }}
  { "$sort" : { "date" : -1 }}
])

hoặc thậm chí với mới $ lookup cú pháp

Users.aggregate([
  { "$match" : { "_id": ObjectId("whateverTheUserIdIs") }}, 
  { "$lookup" : {
    "from" : "workouts", 
    "let": { "workouts": "$workouts" },
    "pipeline": [
      { "$match": { "$expr": { "$in": ["$_id", "$$workouts"] }}},
      { "$sort" : { "date" : -1 }}
    ]
    "as" : "workoutDocumentsArray"
  }},
  { "$unwind": "$workoutDocumentsArray" },
  { "$replaceRoot": { "newRoot": "$workoutDocumentsArray" }}
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Các chức năng tùy chỉnh được tính toán các cột chiếu mongodb

  2. junit test case sử dụng nhúng mongodb de.flapdoodle.embed.mongo

  3. MongoDb lưu lỗi ném cho các thành viên riêng của lớp PHP

  4. Sử dụng Aggregate với $ group trong mongodb

  5. Mongoose:làm thế nào để đặt một trường lược đồ làm ID?