0

フィールド(キー)の既存のドキュメントすべてのレコードを追加しようとしています。そして、私はしたいです。新しいレコードが保存されると、このフィールドは現在の日付に自動的に保存されます。

これで、studenの1つのドキュメントインスタンス{"_id":ObjectId( "4f83ed9bcba9560ea474465d")、 "name": ""、 "lastname": ""、 "number": ""、.....}

私はこれをしたいです。

{"_id":ObjectId( "4f83ed9bcba9560ea474465d")、 "name": ""、 "lastname": "" "Date":currentTime()}

新しいレコードをドキュメントに保存すると、現在の時間がドキュメントに自動的に保存されます。クライアント側からこれをやりたくない、

4

1 に答える 1

4

私が正しく理解していることを確認するために、コレクション内のすべてのドキュメントを新しい[日付]フィールドで更新することを検討していますか、それとも新しいドキュメントが挿入されたときに現在の日付を追加することを検討していますか?

次のようなコレクション(簡潔にするために切り捨てられた)があるとします。

> db.students.find()
{ "_id" : 1, "name" : "Joe" }
{ "_id" : 2, "name" : "Jane" }
{ "_id" : 3, "name" : "Sam" }
> 

日付は、次のように1つの更新ステートメントでコレクション内のすべてのドキュメントに追加できます。

> db.students.update({}, {$set:{"Date": new Date()}}, false, true)
> db.students.find()
{ "Date" : ISODate("2012-04-10T15:06:34.608Z"), "_id" : 1, "name" : "Joe" }
{ "Date" : ISODate("2012-04-10T15:06:34.608Z"), "_id" : 2, "name" : "Jane" }
{ "Date" : ISODate("2012-04-10T15:06:34.608Z"), "_id" : 3, "name" : "Sam" }
> 

更新関数に渡されるfalseとtrueの値は、upsert=falseとmulti=trueを示します。これに関する詳細は、update()関数に関するMongoのドキュメントに記載されています: http ://www.mongodb.org/display/DOCS/Updating#Updating-update%28%29

コレクションに追加された新しいドキュメントに新しいDateオブジェクトを追加するには、ドキュメントの保存時に新しいDateオブジェクトを作成するだけです。

> db.students.save({ "_id" : 4, "name" : "Chris", "Date":new Date()})
> db.students.find()
{ "Date" : ISODate("2012-04-10T15:06:34.608Z"), "_id" : 1, "name" : "Joe" }
{ "Date" : ISODate("2012-04-10T15:06:34.608Z"), "_id" : 2, "name" : "Jane" }
{ "Date" : ISODate("2012-04-10T15:06:34.608Z"), "_id" : 3, "name" : "Sam" }
{ "_id" : 4, "name" : "Chris", "Date" : ISODate("2012-04-10T15:12:03.161Z") }
>

コンストラクターに値が渡されない状態でDateオブジェクトがJavaスクリプトで作成されると、現在のUTC(協定世界時またはGMT)時刻で日付オブジェクトが作成されます。Java Script Dateオブジェクトの詳細については、 http ://www.w3schools.com/jsref/jsref_obj_date.aspを参照してください。

言語が異なれば日付の処理も異なるため、アプリケーションが記述されている言語に応じて、その言語のドキュメントで日付オブジェクトの実装方法を確認する必要があります。

うまくいけば、これはあなたが正しい方向に向けられるようになるでしょう。

于 2012-04-10T15:26:11.277 に答える