MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Node, Mongoose:Премахване на json елемент от резултата от заявката с изтриване

Мисля, че това, което имате предвид като JSON, всъщност е обект на документ на Mongoose предвид таговете, които сте добавили към въпроса си. Тъй като този обект е прикачен към неговата „схема“, може да имате правила там, като например „задължително“ поле или такива, които пречат на операцията, която се опитвате да извършите.

За да получите обратно необработена форма на обекта, просто използвайте .toObject() метод върху резултата от документа:

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

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

    console.log( raw );

});

Разбира се, винаги можете просто да пропуснете полето да бъде върнато в резултата от заявката с основния формуляр, предоставен от .select() :

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

    console.log( doc );

});

И двата формуляра ще премахнат това конкретно поле от отговора, но ако евентуално искате повече контрол върху резултата от това, което може да бъде предоставено от проекцията на полето от .select() след това използвайте .toObject() формират и манипулират само като обикновен JavaScript обект.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose:не вмъквайте, ако елементът вече е съхранен

  2. продължи в cursor.forEach()

  3. Как мога да изтегля поддокументи от масив?

  4. Грешки при свързване при изграждане на c++ проект с помощта на mongo-cxx-driver

  5. MongoDB и C#:Търсене без регистри