2011-05-31 127 views
1

如何使用mongodb將文檔插入另一個文檔中?將文檔插入另一個文檔

我已經試過下面類似的代碼,但我一直有一個問題將在現場設置設定的我的名單:

var settingViewModels = new[]{ setting }; 
var query = Query.EQ("Name", applicationName); 
var update = Update.AddToSet("Settings", BsonArray.Create(setting)); 
db.Collection<Applications>().Update(query, update, UpdateFlags.Upsert, SafeMode.True) 

我得到一個錯誤,當我將我settingViewModels到BsonArray說:

.NET類型MyProject.SettingViewModel不能映射到BsonType.Array 參數名:價值

任何想法?

感謝 約翰

+0

什麼是設置變量的類型? – 2011-05-31 13:49:41

+0

這是設置的對象: public class SettingViewModel { public guid Id {get;組; } public string Key {get;組; } public string Value {get;組; } } – Gui 2011-05-31 14:03:55

回答

2

如果你想添加的設置項應用收集的設置[]數組,你應該使用ToBsonDocument() extention方法從MongoDB.Bson命名空間:

var update = Update.AddToSet("Settings", setting.ToBsonDocument()); 

您無需創建BsonArray

+0

嗨,我試過你的解決方案,並且我得到一個新的錯誤: 安全模式檢測到一個錯誤:無法將$ addToSet修飾符應用於非數組(響應:{「err」:「無法應用$ addToSet修飾符非數組「,」code「:12591,」n「:0,」connectionId「:1174,」ok「:1}) 這裏是我的代碼複製粘貼: var query = Query.EQ名稱「,applicationName); var update = Update.AddToSet(「Settings」,setting.ToBsonDocument()); db.Collection ()。Update(query,update,UpdateFlags.Upsert,SafeMode.True) – Gui 2011-05-31 14:00:51

+1

@JohnSmith:這是因爲應用程序文檔中的'Settings'字段不是數組,但應該是..你能否更新'Application'文檔示例的問題? – 2011-05-31 14:10:20

+0

安德魯,你是蒙古國王 – Gui 2011-05-31 14:14:37

相關問題