app.jsschema.post( '検索')とschema.post( 'findOne')
Match.find({}).lean().exec(function(err, matches) {});
Match.findById(id).lean().exec(function(err, match) {});
Iは異なる経路でこれらのクエリの両方を使用します。
マッチモデル: Javaでデフォルトの日付書式は、(のような2016-05-19T13:29:07.731Z
)(私はクライアント側で使用している)私が代わりにUnixタイムスタンプで上書き理由です、痛みで解析
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var messageSchema = new Schema({
// ...
message: {type: String, required: true},
}, {
timestamps: true
});
var matchSchema = new Schema({
// ...
messages: [messageSchema]
}, {
timestamps: true
});
matchSchema.post('find', function(result) {
result.forEach(function(chat) {
chat.messages.forEach(function(message) {
message.createdAt = new Date(message.createdAt).getTime();
message.updatedAt = new Date(message.updatedAt).getTime();
});
});
});
matchSchema.post('findOne', function(result) {
if (result !== null) {
result.messages.forEach(function(message) {
message.createdAt = new Date(message.createdAt).getTime();
message.updatedAt = new Date(message.updatedAt).getTime();
});
}
});
var Match = mongoose.model('Match', matchSchema);
module.exports = Match;
これはJavaで簡単にフォーマットできます。 この問題は、find
とfindOne
の重複コード(message.createdAt
= ...とmessage.updatedAt
..)があります。 find
とfindByID
の両方のクエリに対してトリガするフックがありますか?だから私は一度コードを書く必要がありますか? find
はfindById
のトリガーにはなりません。
はい、そうです。しかし、とにかく、すべての異なるselect(find/findOne/findById)タイプの**フック**はありませんか? – Chris
いいえ、それらをすべて捕まえる単一のフックがないようです。 – robertklep