我想在我的node-express应用中从JSON API提取数据结果时排除默认的_id或两个字段(时间和计数)中的任何一个。我尝试了几种方法来执行此操作,但是数据仍然显示我在GET响应中标记为排除的字段。在下面的代码中,我使用_Id作为示例,但是对于数据库的每个字段仍然存在类似的问题。这是我发现不起作用的一些方法:
exports.get_all_clothing = (req, res, next) => {
Clothing.find({}, {projection:{_id: 0}})
.exec()
.then(docs => {
console.log(docs);
res.status(200).json(docs);
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}
AND
exports.get_all_clothing = (req, res, next) => {
Clothing
.find({}).project({ _id: 0 })
.exec()
.then(docs => {
console.log(docs);
res.status(200).json(docs);
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}
AND
exports.get_all_clothing = (req, res, next) => {
Clothing.find('-_id')
.exec()
.then(docs => {
console.log(docs);
res.status(200).json(docs);
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}
每次我得到的结果都是
[ { _id: 5cb73
time: '656
count: 43,
__v: 0 },
{ _id: 5cb73
time: '155
count: 60,
__v: 0 },
{ _id: 5cb73
time: '155
count: 56,
__v: 0 }, ....]
请帮忙。
答案 0 :(得分:0)
尝试一下:
exports.get_all_tweets = (req, res, next) => {
Clothing.find({}, {_id: 0})
.exec()
.then(docs => {
console.log(docs);
res.status(200).json(docs);
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}
答案 1 :(得分:0)
您可以使用query.select获得所需的结果。
exports.get_all_tweets = (req, res, next) => {
Clothing.find()
.select('-_id')
.then(docs => {
console.log(docs);
res.status(200).json(docs);
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
}