いくつかの追加の一時プロパティに追加データを入力して、レスポンスに返送したいと思います。
'use strict';
var mongoose = require('mongoose');
var express = require('express');
var app = express();
var TournamentSchema = new mongoose.Schema({
createdAt: { type: Date, default: Date.now },
deadlineAt: { type: Date }
});
var Tournament = mongoose.model('Tournament', TournamentSchema);
app.get('/', function(req, res) {
var tournament = new Tournament();
// Adding properties like this 'on-the-fly' doesnt seem to work
// How can I do this ?
tournament['friends'] = ['Friend1, Friend2'];
tournament.state = 'NOOB';
tournament.score = 5;
console.log(tournament);
res.send(tournament);
});
var server = app.listen(3000, function() {
console.log('Listening on port %d', server.address().port);
});
ただし、プロパティは Tournament オブジェクトには追加されないため、応答には追加されません。
ベストアンサー1
答えはここに見つかりました:js オブジェクトにプロパティを追加できません
.toJSON()
Mongoose オブジェクトにプロパティを追加できないため、またはメソッドを使用してプレーンな JSON オブジェクトに変換する必要があります.toObject()
。
編集:また、@Zlatko が述べているように、.lean() メソッドを使用してクエリを確定することもできます。
mongooseModel.find().lean().exec()
...ネイティブ js オブジェクトも生成します。