考慮我定義了一個貓鼬架構如何獲取虛擬屬性。 Node.js的貓鼬+ +的MongoDB
var Schema_MySchema = new mongoose.Schema({
Field1: String, Field2: String
});
我已經加入虛擬屬性&下列方式設置選項:
Schema_MySchema.virtual('USERNAME').get(function() {
return this.Field1;
});
Schema_MySchema.set('toJSON', { virtuals: true });
schema的對象從MongoDB中檢索數據如下:
var Mod_Obj = mongoose.model('SchemaName', Schema_MySchema);
var Model_Instance = new Mod_Obj();
Model_Instance.find({}, function (err, docs) {
/*
Here I get a object docs with following structure:
[{ _id: ObjectId("511XXXdff9c4c419000008"),
Field1: 'SOMEvalueFromMongoDB_1',
Field2: 'SOMEvalueFromMongoDB_2',
USERNAME: 'SOMEvalueFromMongoDB_1'
}]
*/
});
Now我想刪除實際屬性從MongoDB的回來,說我想從docs
刪除Field1
我嘗試以下辦法來消除:
delete docs.Field1;
2.var Json_Obj = docs.toJSON(); delete Json_Obj.Field1;
3.var Json_Obj = docs.toObject({ virtuals: true }); delete Json_Obj.Field1;
4.delete docs[0].Field1;
5.delete docs[0]['Field1'];
所有方法沒有奏效。 :-(
如果執行了簡單的JSON測試它的工作:
var a = { 'A' : 1, 'B': 2 };
delete a.A;
console.log(a); //prints only object with B attribute only. i.e. { B: 2 }
誰能告訴我什麼是錯在這裏提前
謝謝...
你嘗試'刪除文檔[「字段1」]',什麼是什麼輸出? – mithunsatheesh