簡體   English   中英

mongoose從對象中刪除屬性

[英]mongoose removing properties from object

尋找一種在將對象屬性發送到前端之前刪除對象屬性的方法。
有什么理由可以解決這個問題:

var obj = {
    name: 'cris',
    age: 22,
}
console.log(obj) //output name, age
delete obj.name
console.log(obj) //output age

這不是:

User.findOne({ username: req.query.username }, function (err, user) {
    if (user != null) {
        console.log(user) //output all props
        delete user.salt || delete user['salt']
        console.log(user) //output all props
    } 
});

user是Mongoose文檔而不是常規對象。

您可以使用toObject()將其轉換為一個:

user = user.toObject();

Mongoose返回的是模型實例,而不是您正在尋找的普通JS對象。 可以使用user.toObject()訪問您要查找的數據。

db.collection.findOne()方法返回一個游標 你需要使用toObject()轉換為對象。 使用user.toObject()然后刪除並將其發送到客戶端。

要使用delete,您需要通過調用toObject將模型文檔轉換為純JavaScript對象:

User.findOne({ username: req.query.username }, function (err, user) {
    if (user != null) {
        console.log(user) //output all props
        user = user.toObject();
        delete user.salt || delete user['salt']
        console.log(user) //remove salt prop
    } 
});

你也可以修改使用它

User.findOne({}, function(err, user){
  user.key_to_delete = undefined;
  user.save();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM