[英]how to insert nested collection in c# to mongo db
我想使用C#創建這樣的集合
Agent_name: {
f: "vbv",
l: "vbvbv"
},
"Agent_LoginSessionId" : "",
"Agent_GroupCode" : "",
"Agent_dtmCreated" : "",
"Agent_dtmLastLogin" : "",
"Agent_strIsActive" : ""
stamps: {
ins: "",
upd: "",
createUsr: "",
updUsr: "",
Ins_Ip: "",
Upd_IP: ""
}
我的C#代碼是這樣的:
MongoCollection<BsonDocument> Agents = mydb.GetCollection<BsonDocument>("Agents");
BsonDocument collectionAgent = new BsonDocument {
{ "Agent_Login", Aid },
{"Agent_Pwd",Apwd},
{"Agent_Rpwd",Arpwd},
Agent_Name:
{ "f", Afname},
{"l", Alname} ,
{"Agent_LoginSessionId",""},
{"Agent_GroupCode",AgroupId},
{"Status",AStastus}
};
Agents.Insert(collectionAgent)
在C#中如何實現呢? 它需要任何特定的驅動程序來安裝。 請提出一些建議?
要使用.NET驅動程序將文檔插入MongoDB,您有兩種選擇方式來表示程序中的數據:
使用BsonDocument對象模型創建復雜的BSON文檔可能會變得很復雜,這主要是因為涉及到所有嵌套。 這是使用BsonDocument對象模型將文檔插入集合的方法:
var bsonDocument = new BsonDocument
{
{ "_id", ObjectId.GenerateNewId() },
{ "Agent_name", new BsonDocument
{
{ "f", "vbv" },
{ "l", "vbvbv" }
}
},
{ "Agent_LoginSessionId", "" },
{ "Agent_GroupCode", "" },
{ "Agent_dtmCreated", "" },
{ "Agent_dtmLastLogin", "" },
{ "Agent_strIsActive", "" },
{ "stamps", new BsonDocument
{
{ "ins", "" },
{ "upd", "" },
{ "createUsr", "" },
{ "updUsr", "" },
{ "Ins_Ip", "" },
{ "Upd_Ip", "" }
}
}
};
collection.Insert(bsonDocument);
我在文檔中添加了“ _id”元素,因為所有MongoDB文檔都將具有“ _id”(如果願意,您可以讓服務器自動添加它)。
另一種選擇是定義一組C#類,驅動程序可以與BSON文檔進行映射。
這是使用C#類插入同一文檔的方法:
var agent = new Agent
{
Id = ObjectId.GenerateNewId(),
Name = new AgentName { First = "vbv", Last = "vbvbv" },
LoginSessionId = "",
GroupCode = "",
Created = "",
LastLogin = "",
IsActive = "",
Stamps = new Stamps
{
Inserted = "",
Updated = "",
CreateUser = "",
UpdateUser = "",
InsertIPAddress = "",
UpdateIPAddress = ""
}
};
collection.Insert(agent);
這是C#類的定義。 我已經使用.NET命名約定作為屬性,並使用[BsonElement(“ ...”)]屬性來指定BSON文檔中元素的相應名稱:
public class Agent
{
public ObjectId Id { get; set; }
[BsonElement("Agent_name")]
public AgentName Name { get; set; }
[BsonElement("Agent_LoginSessionId")]
public string LoginSessionId { get; set; }
[BsonElement("Agent_GroupCode")]
public string GroupCode { get; set; }
[BsonElement("Agent_dtmCreated")]
public string Created { get; set; }
[BsonElement("Agent_dtmLastLogin")]
public string LastLogin { get; set; }
[BsonElement("Agent_strIsActive")]
public string IsActive { get; set; }
[BsonElement("stamps")]
public Stamps Stamps { get; set; }
}
public class AgentName
{
[BsonElement("f")]
public string First { get; set; }
[BsonElement("l")]
public string Last { get; set; }
}
public class Stamps
{
[BsonElement("ins")]
public string Inserted { get; set; }
[BsonElement("upd")]
public string Updated { get; set; }
[BsonElement("createUsr")]
public string CreateUser { get; set; }
[BsonElement("updUser")]
public string UpdateUser { get; set; }
[BsonElement("Ins_Ip")]
public string InsertIPAddress { get; set; }
[BsonElement("Upd_Ip")]
public string UpdateIPAddress { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.