Meteor の MongoDB コレクションに $currentDate を含むフィールドを挿入する 質問する

Meteor の MongoDB コレクションに $currentDate を含むフィールドを挿入する 質問する

使い方が分からない$現在の日付Meteor の MongoDB コレクションにドキュメントを挿入する場合。

これは挿入ではなく更新でのみ使用できますか? 奇妙に思えますが、代わりに使用する以外に代替手段が見つかりませんnew Date

Stuff.insert({ 
   owner: Meteor.userId(),
   createdAt: ..., // how to create this field with $currentDate ?
   theStuff: "Some of the good stuff"
})

メモ / 考え / TL,DR

  • フィールドは $ 演算子で始めることはできません。また、私の知る限りでは中括弧で始めることもできません{}
  • もし本当にそうなら、更新のみで動作する演算子を持つことの意味は何でしょうか?
  • $currentDateがよりも優れているのはなぜですかnew Date?
  • Moment.js を特に使用する場合の利点の 1 つは、$currentDate が ISO 8601 形式で入力されることです。
  • 答えは、最初から何らかのアップサートを実行することですか? もしそうなら、これは意図しない結果をもたらす可能性がありますか?

ベストアンサー1

もし本当にそうなら、更新のみで動作する演算子を持つことの意味は何でしょうか?

$currentDate更新演算子したがって、メソッドと一緒に使用することはできませんcollection.insert。しかし、upserttrueクエリ条件に一致するドキュメントがない場合、新しいドキュメントを作成します。MongoDBの演算子は、Unix哲学

一つのことをやり遂げる

したがって、各オペレーターは 1 つのタスクのみを実行する必要があります。

$currentDateがよりも優れているのはなぜですかnew Date?

まず最初に申し上げたいのはnew DateJavaScript日付インスタンス。

$currentDatenew Dateフィールドの値を現在の日付に更新したいが、new Date別の方法を使用する必要があるときに使用できます。更新演算子動作させるには、次のようにします。例:

  • 使用new Date

    db.collection.update({ "name": "bar" }, { "$set": { "date": new Date() }})
    
  • 使用$currentDate

    db.collection.update({ "name": "bar"}, 
        { "$currentDate": { "date": { "$type": date }}}
    )
    

とは異なり$currentDatenew Dateメソッドで使用することができ、1 つ以上の引数で呼び出されるinsert場合は、値を特定の値に設定できます。Date

おすすめ記事