0
これは、指定された名前(この場合は「Clinique Toto」)のキャビネットからSecretaireのAプロを取得し、ここで苦労しています。2集の集約問題
キャブモデル:
var cabinet = new cabModel({
_id: new mongoose.Types.ObjectId(),
InfoCab:{Nom: "Clinique Toto"} //This is the Name of the Cabinet
});
cabinet.save((err, cabinet) => {
Proのモデル案を設定
var pro1 = new proModel({
_id: new mongoose.Types.ObjectId(),
Nom: 'ProTITI',
Cv:{ Fonction: { Secretaire: false}}
});
pro1.Cabinets.push(cabinet._id);
pro1.save((err, cabinet) => { });
var pro2 = new proModel({
_id: new mongoose.Types.ObjectId(),
Nom: 'Pro_TOT',
Cv:{ Fonction: { Secretaire: true}}
});
:長所のいくつかのために真。キャブに作成した専門家を押す
pro2.Cabinets.push(cabinet._id);
pro2.save((err, cabinet) => { });
var pro3 = new proModel({
_id: new mongoose.Types.ObjectId(),
Nom: 'Josianne',
Cv:{ Fonction: { Secretaire: true}}
});
pro3.Cabinets.push(cabinet._id);
pro3.save((err, cabinet) => { });
。
cabinet.Pro.push(pro1, pro2, pro3);
cabinet.save();
console.log("Done");
});
const handleError = function (err) {
console.error(err);
};
私はこれまでに得た: プロスキーマ:
const ProSchema = new Schema({
_id: { type: Schema.Types.ObjectId },
Cv: {Fonction: {Pro: {type: Boolean,},
Secretaire: {type: Boolean}
}
}
CabSchema:
ここ
db.Pro.aggregate([
{
$match: {
Cv: {
Fonction: {
Secretaire: true
}
}
}
},
{
$lookup:
{
from: "Cab",
localField:"Nom",
foreignField: "_id",
as: "PK"
}
}
])
はスキーマです
const CabSchema = new Schema({
Pro: [{ type: Schema.Types.ObjectId, ref: 'ProSchema' }],
InfoCab: {
Nom: {type: String}
});
私はスキーマで編集したところです。 乾杯、 – NelieluTu
#2を試しましたか? – imixtron
これは、infocabの出力です。"キャビネット":[ObjectId( "59d4b229585ee41a309ade4e"):キャビネット "、"キャビネット "、"キャビネット " ) "、" __v ":0、" PK ":[]} {" _id ":ObjectID(" 59d4b229585ee41a309ade50 ")、" Nom ":" Pro_TOT "、" Cv ":{" Fonction ":{" Secretaire " :true}}、キャビネット:[ObjectId( "59d4b229585ee41a309ade4e")]、 "__v":0、 "PK":[]} ここのことは、タクシーの名前をフィルターとしても持たせたいと思います。 乾杯、 – NelieluTu