Как удалить _id при печати полей с помощью printjson ()? - PullRequest
0 голосов
/ 01 июня 2019
db.events.find().forEach(function(doc)
{
    var iso_date = new Date(doc.starts_at);
    if(iso_date>= new Date() && iso_date<= new Date(new Date().setDate(new 
     Date().getDate()+4))){
        printjson(doc);
    }
})

Я не могу удалить поле _id, используя printjson() в MongoDB.Я печатаю поля на основе определенного условия, которое я обработал с помощью JavaScript.При печати с использованием printjson() я не могу удалить поле _id.Есть ли способ удалить _id во время печати, используя printjson()?

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Просто используйте проекция , чтобы избежать возврата _id в результатах в дБ:

db.events.find(
  {starts_at: {$gte: Date.now(), $lte: new Date().setDate(4)}},
  {_id:0} 
)
.forEach(function(doc)
{
    printjson(doc);
});
0 голосов
/ 01 июня 2019

Как указал JME в комментарии к вашему вопросу, вы можете удалить поле _id перед печатью документа. С другой стороны, сравнение дат может быть чем-то более простым, и, что более важно, вы должны сделать это в запросе, чтобы обработать только те документы, которые вы хотите, вместо того, чтобы просматривать все документы в базе данных, так что я думаю, что ваш код может выглядеть как это:

db.events.find({starts_at: {$gte: Date.now(), $lte: new Date().setDate(4)}}).forEach(function(doc)
{
    delete doc._id;
    printjson(doc);
});
...