1
でUPDATE_TIMEを記録するには?マングース、どのように私はマングーススキーマが持っているサブドキュメント
のように:私は 'info.name'を更新したい、その後、 'cust.schema.info'のupdate_timeが含まれます。
サービス上のロジックを追加してこの問題を解決することは好ましくありません。スキーマを定義して解決できますか?
でUPDATE_TIMEを記録するには?マングース、どのように私はマングーススキーマが持っているサブドキュメント
のように:私は 'info.name'を更新したい、その後、 'cust.schema.info'のupdate_timeが含まれます。
サービス上のロジックを追加してこの問題を解決することは好ましくありません。スキーマを定義して解決できますか?
はい、できます。実際には、これはよくある問題です。あなたを助けるいくつかのプラグインがありますが、私の推薦は:Mongoose Timestampです。
https://github.com/drudge/mongoose-timestamp
は、これは、単一のファイルには、あなたが実際にあなたがdirectly on Githubをプロジェクトに統合する前に、それを読むことができ、非常に簡単です。
はその後、次のようにタイムスタンプを使用することができます。
User.findOneAndUpdate({username: 'Prince'}, { password: 'goatcheese' }, { new: true, upsert: true })
.exec(function (err, updated) {
console.log(user.updatedAt); // Should be approximately createdAt + 1 second
console.log(user.createdAt < user.updatedAt); // true
});
はあなたに感謝し、このNPMは便利です!しかし、それは部分的なフィールドの更新のみを解決することができます、私はこの文書をすべて更新して保存したい(古い文書をカバーする)。 –
多くのフィールドは一度更新する必要があるため、私は古いものと新しい文書を比較することを好まない。 –