yp1234 发表于 2017-12-15 17:27:36

mongodb多表查询

  db.ClassMembers.insertMany([
  {
  "ClassID":"CL0001",
  "StudentID":"S000001",
  "DateFrom":"2015-09-01"
  },
  {
  "ClassID":"CL0002",
  "StudentID":"S000002",
  "DateFrom":"2015-09-01"
  }
  ]);
  db.Scores.insertMany([
  {
  "StudentID":"S000001",
  "TestID":"T000001",
  "Scores":[{
  "Course":"Chinese",
  "Score":80
  },{
  "Course":"Maths",
  "Score":70
  },{
  "Course":"English",
  "Score":75
  }]
  },
  {
  "StudentID":"S000002",
  "TestID":"T000001",
  "Scores":[{
  "Course":"Chinese",
  "Score":70
  },{
  "Course":"Maths",
  "Score":80
  },{
  "Course":"English",
  "Score":82
  }]
  }
  ]);
  db.ClassMembers.aggregate([
  {
  $match: {ClassID: 'CL0001'}
  },
  {
  $lookup:
  {
  from: "Scores",
  localField: "StudentID",
  foreignField: "StudentID",
  as: "ScoresDocs"
  }
  },
  { $match : { "ScoresDocs.TestID" : 'T000001' }},

  { $project: { _id: 0,>  { $unwind: '$ScoresDocs'},
  { $unwind: '$ScoresDocs.Scores'},
  { $match: {'ScoresDocs.Scores.Course':'Chinese'}}
  ])
  //最后一步
  将数据从对象列取出来地址:https://docs.mongodb.com/master/reference/operator/aggregation/replaceRoot/#pipe._S_replaceRoot
页: [1]
查看完整版本: mongodb多表查询