suchen

Heim  >  Fragen und Antworten  >  Hauptteil

mongodb – Mungo, wie man mehrere Modelle abfragt

Zum Beispiel

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

Es ist bekannt, dass Benutzer-ID, Dateiname, Seiten-ID und Modell asynchron sind. Wie kann man diese beiden Modelle gleichzeitig durchsuchen?
Fahren Sie mit dem nächsten Schritt fort, nachdem Sie zwei Ergebnisse erhalten haben

欧阳克欧阳克2737 Tage vor1093

Antworte allen(4)Ich werde antworten

  • 我想大声告诉你

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

    代码如下,其实我感觉写的一点也不优雅...

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

    Antwort
    0
  • 女神的闺蜜爱上我

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

    如果你需要他们并发执行的话,可以用Promise

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

    如果不需要并发进行,可以同步进行的话,可以用 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)
    

    Antwort
    0
  • 女神的闺蜜爱上我

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

    楼上当然是不怎么优雅的 你需要的是async/await 所以把node升级到7.6以上吧

    Antwort
    0
  • 世界只因有你

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

    是吗?mongoose api没有多表查询的方法吗?

    Antwort
    0
  • StornierenAntwort