sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose najde vracející se lichý předmět

Objekt, který obdržíte, je Cursor což je objekt používaný k získání skutečných výsledků.

Když jste si jisti, že váš dotaz nikdy nevrátí více než jeden objekt (jako v tomto případě, kdy dotazujete pomocí vždy jedinečného _id pole), můžete použít db.collection('Tweet').findOne( který vrátí právě tento objekt bez další vrstvy nepřímosti.

Ale když váš dotaz může potenciálně vrátit více než jeden dokument, musíte použít kurzor. Chcete-li vyřešit kurzor, můžete jej změnit na pole dokumentů pomocí cursor.toArray :

    db.collection('Tweet').find({}, function (err, cursor){
        cursor.toArray().forEach(function(doc) { 
            console.log(doc);
        });
    })

Toto je nejjednodušší verze. Další informace o kurzorech naleznete ve výše uvedené dokumentaci.

Mimochodem:Doposud jste používali pouze funkcionalitu nativního ovladače. Když chcete použít Mongoose k dotazování na objekty, možná budete chtít použít metody objektu modelu Mongoose.




  1. Polygony dotazu $geowithin $box mongodb nic nevrací

  2. najít a počítat v jediném dotazu mongodb

  3. MongoDB získá maximální datum uvnitř dvojitě vnořeného pole

  4. Dotaz Mongodb je pomalý s tečkovou notací