2012-04-10 99 views
0

我想添加字段(鍵)現有文檔的所有記錄。我想;當新記錄保存時,自動保存到當前日期此字段;如何通過類型數據添加新的字段到現有文檔Mongodb?

現在我斯圖登 的一個文檔實例{ 「_id」:物件( 「4f83ed9bcba9560ea474465d」), 「名」: 「」, 「姓氏」: 「」, 「數字」: 「」, ..... }

我想這個;

{ 「_id」:物件( 「4f83ed9bcba9560ea474465d」), 「名」: 「」, 「姓氏」: 「」 「日期」:currentTime的() }

當新的記錄保存以文件自動將當前時間保存到文件。 我不想從客戶端做到這一點,

回答

4

只是爲了確保我的理解正確的話,你要買一個新的「日期」字段更新您的集合中的每個文件,或者你只是希望添加當前插入新文檔的日期?

給定一個集合(截斷簡潔)像下面這樣:

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

一個日期可能被添加到每個文檔集合在一個更新語句,像這樣:

> 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()函數: 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") } 
> 

當Java腳本創建一個Date對象,沒有值傳遞到構造函數,它將創建與當前UTC(通用,或GMT)時間的日期對象。該Java腳本日期對象的更多信息可以在這裏找到: http://www.w3schools.com/jsref/jsref_obj_date.asp

不同的語言處理日期不同,所以要根據其語言的應用程序是用的,你必須檢查它是如何實現的日期是語言的文檔目的。

希望這會讓你指出正確的方向。

+0

謝謝你的回答。我是MongoDb的新手。我想要這個, 我想要這個, > db.students.save({「_id」:4,「name」:「Chris」}) > db.students.find() {「Date」: ISODate(「2012-04-11T09:56:34.608Z」),「_id」:1,「name」:「Joe」} 它看起來像觸發器或默認當前日期爲每個新記錄 – icmeyecektim 2012-04-11 06:54:03

+0

啊。我想我明白。 「_id」是Mongo自動添加到新文檔的唯一字段。如果您希望將「日期」字段添加到新文檔中,則必須通過應用程序完成。 – Marc 2012-04-13 15:05:45

+0

是的,我明白了。非常感謝Marc – icmeyecektim 2012-04-17 12:40:54

相關問題