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