recherche

Maison  >  Questions et réponses  >  le corps du texte

mongodb - mangouste comment interroger plusieurs modèles

Par exemple

1

2

3

4

5

<code>aModel = {

    user_id: String,

    file_name: String,

    page_id: Number

}</code>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<code>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]

}</code>

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

.
欧阳克欧阳克2816 Il y a quelques jours1149

répondre à tous(4)je répondrai

  • 我想大声告诉你

    我想大声告诉你2017-06-20 10:07:55

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <code>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

        })</code>

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-20 10:07:55

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

    1

    2

    3

    4

    <code>const query1 = aModel.find(query)

    const query2 = bModel.find(query)

    Promise.all([query1, query2]).then(rs => {})

    </code>

    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

    1

    2

    3

    4

    5

    6

    7

    <code>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)

    </code>

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-20 10:07:55

    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

    .

    répondre
    0
  • 世界只因有你

    世界只因有你2017-06-20 10:07:55

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

    répondre
    0
  • Annulerrépondre