2013-03-26 53 views
0

本來,我有這樣一個嵌套的對象,以便:
db.insert {一個:1,B:2,C:{}}
和我想內容插入對象C。所以我使用以下內容:
db.update({a:1},{$ set:{c:{one:1,two:2,three:3}}})錯誤更新miniMongo

但是,錯誤消息。如何爲嵌套對象創建插入?

+0

你得到什麼錯誤訊息? – Thilo 2013-03-26 06:24:13

+0

我使用流星和所有我看到Meteor.Error.prototype =新錯誤;我也嘗試了db.update({a:1},{$ set:{'c.one':1}})中的點語法。另外,我想知道如果我需要c對象中的多個項目?創建一個數組? – Angela 2013-03-26 06:41:03

+0

你是否在這些命令中使用'meteor mongo'或者直接在你的應用程序中使用它們? – Prashant 2013-03-26 07:07:16

回答

0

流星,你需要初始化MongoDB的集合中,像這樣一個全球範圍內,

YourCollection = new Meteor.Collection("yourcollection")

記住這一點需要在全球範圍內,這意味着你需要添加這一點的客戶端或服務器代碼,以便兩者均可訪問此集合。

然後你就可以做,

YourCollection.insert({ a: 1, b: 2 })

你不必添加一個字段c,如果它不包含任何對象。這是MongoDB的強大功能。

從0.5.8開始,Meteor不允許您使用任意Mongo選擇器更新客戶端的文檔。要了解更多關於此的信息,請參閱Understanding 「Not permitted. Untrusted code may only update documents by ID.」 Meteor error。所以你可以選擇使用Meteor.methods

但是,如果你想從客戶端更新,你仍然可以做,

YourCollection.update({ _id: "tdMrJojHyxWQ8tr6w" }, { $set : { one: 1, two: 2, three: 3 } })