mongodb - mangouste comment interroger plusieurs modèles
欧阳克
欧阳克 2017-06-20 10:05:55
0
4
1080

Par exemple

aModel = {
    user_id: String,
    file_name: String,
    page_id: Number
}
fileSchema = new Schema({
    page_id: Number,
    key: String,
    doc: String,
    title: String,
    sym: String
});

bModel = {
    user_id: String,
    file_name: String,
    origin_file: String,
    new_file: [fileSchema]
}

On sait que user_id, file_name, page_id et model sont asynchrones. Comment rechercher ces deux modèles en même temps
Passez à l'étape suivante après avoir obtenu deux résultats

.
欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

répondre à tous(4)
我想大声告诉你

Le code est le suivant. En fait, j'ai l'impression que l'écriture n'est pas élégante du tout...

var aDocs ,bDocs =null ;
aModel.find({ user_id:xx , file_name:xx , page_id:xx})
    .then(function(docs){
        aDocs = docs;
        return bModel.find({ user_id:xx , file_name:xx , page_id:xx}) })
    .then(function(docs){
        bDocs = docs ;
        other codes
    })
女神的闺蜜爱上我

Si vous avez besoin qu'ils s'exécutent simultanément, vous pouvez utiliser Promise

const query1 = aModel.find(query)
const query2 = bModel.find(query)
Promise.all([query1, query2]).then(rs => {})

Si vous n'avez pas besoin de le faire simultanément et que vous pouvez le faire de manière synchrone, vous pouvez utiliser yield 或者 async/await

const query1 = yield aModel.find(query)
const query2 = yield bModel.find(query)

// 需要node7以上
const query1 = await aModel.find(query)
const query2 = await bModel.find(query)
女神的闺蜜爱上我

Bien sûr, l'étage n'est pas très élégant. Ce dont vous avez besoin est async/wait, alors mettez à niveau le nœud vers 7.6 ou supérieur

.
世界只因有你

Vraiment ? L'API Mongoose n'a-t-elle pas une méthode pour les requêtes multi-tables ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal