使用 printjson() 打印字段时如何删除 _id?

How to remove _id when I print fields using printjson()?

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

我无法使用 MongoDB 中的 printjson() 删除 _id 字段。我正在根据使用 JavaScript 处理的特定条件打印字段。使用 printjson() 打印时,我无法删除 _id 字段。有没有办法在使用 printjson() 打印时删除 _id

正如 JME 在对您的问题的评论中指出的那样,您可以在打印文档之前删除 _id 字段。另一方面,日期的比较可能更简单,更重要的是,你应该在查询中只处理你想要的文档,而不是遍历数据库中的所有文档,所以我认为你的代码看起来像这样:

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

只需使用 projection 即可避免在数据库结果中返回 _id :

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