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

Uzel, Mongoose:Odstraňte prvek json z výsledku dotazu pomocí odstranění

Myslím, že to, co označujete jako JSON, je ve skutečnosti objekt dokumentu Mongoose vzhledem ke značkám, které jste přidali ke své otázce. Protože je tento objekt připojen ke svému "schématu", můžete v něm mít pravidla, jako je pole "povinné" nebo taková, která narušují operaci, kterou se pokoušíte provést.

Chcete-li získat zpět nezpracovaný tvar objektu, jednoduše použijte .toObject() metoda ve výsledku dokumentu:

Model.findOne({ _id: id}, function(err,doc) {

    var raw = doc.toObject();
    delete raw.element;

    console.log( raw );

});

Samozřejmě můžete vždy jednoduše vynechat, aby se pole vrátilo ve výsledku dotazu se základním formulářem, který poskytuje .select() :

Model.findOne({ _id: id}, '-element', function(err,doc) {

    console.log( doc );

});

Každá forma by odstranila toto konkrétní pole z odpovědi, ale pokud chcete mít nad výsledkem větší kontrolu, než jakou může poskytnout projekce pole z .select() pak použijte .toObject() formovat a manipulovat s ním jako s prostým JavaScriptovým objektem.




  1. Jak nakonfiguruji svůj MongoDB tak, aby zohledňoval UTF-8?

  2. Filtrujte a znovu uspořádejte výsledky pomocí node.js a mongodb podle data (měsíce)

  3. Pymongo najít hodnotu v dílčích dokumentech

  4. Používání faset v agregačním rámci C# s více fasetami, Unwind a sortByCount