カテゴリー : Mongoose

[Mongoose] update(), findOneAndUpdate() で validation runValidators: true を設定する

Mongoose の update(), findOneAndUpdate() はデフォルトで validator は実行されないですが runValidators: true オプションを指定すると、validator を実行することができます。

mongoose

続きを読む

MongoDB のレプリカセットを意識して findOneAndUpdate を Primary DB に負荷が掛かりにくいように利用する

MongoDB のレプリカセットを意識して、Primary DB へのクエリ発行数が多くならないように Mongoose の findOneAndUpdate と findOne を組み合わせて、データベース負荷を下げた話をご紹介します。

mongoose

続きを読む

[Mongoose] Schema.Types.Mixed のフィールドに Error オブジェクトを保存する

Mongoose の Schema.Types.Mixed のフィールドに Node.js の Error オブジェクトをそのままだと保存できなかったので、toString() や _.toPlainObject() して保存したというお話です。

mongoose

続きを読む

[Mongoose] timestamp options で createdAt だけ使う

Mongoose の timestamp options で createdAt だけ使う方法を調べたけど、自分で pre hook に実装するしかなかったというお話です。

mongoose

続きを読む

[Mongoose] model.save({ validateBeforeSave: false }) で validate をスキップできる

Mongoose 4.2.0 から model.save() のときにバリデーションをスキップするためのオプション validateBeforeSave が追加されています。

mongoose

続きを読む

[Mongoose][timekeeper] TypeError: Undefined type `FakeDate` at `fieldName`

Node.js + Mongoose な構成のウェブサービスのテストコードで timekeeper という時間操作モジュールを利用していて FakeDate でハマったことをご紹介します。

mongoose

続きを読む

Mongoose documents を JSON に変換して response を返す

Express.js + Mongoose で documents を JSON に変換して response を返すには、

UserModel.find().lean().exec(function (err, users) {
  return res.json(users)
});

というような感じで lean() オプションを付けて plain javascript object を取得した値を res.json で返せばよいです。

参考情報

[Mongoose] index が未作成な field を sort に指定して stream で取得すると default batchSize だけ処理して正常終了するので困った

Mongoose で index が作成されていない field を sort に指定して stream で取得すると、 default batchSize の 1000 件だけ処理して正常終了するので困った話をご紹介します。

mongoose

続きを読む

[Node.js] Mongoose の virtual attributes を sinon で stub 化する

Mongoose の virtual attributes を sinon で stub 化する方法をご紹介します。

mongoose

続きを読む

[Node.js] MONGOOSE WARNING がでないように stable version を使おう

Node.js + Mongoose のアプリ開発で MONGOOSE WARNING という警告メッセージが表示されたら、 unstable バージョンを利用していると思われるので stable なバージョンを使いましょう。

mongoose

続きを読む