C# 如何正确选择一个元素';s来自B文档的值
所以我解释说,我有一个控制器,它在数据库中保存两个信息。id从一个文档转移到另一个文档。我实现了这一点,但我的id以这种方式保存:C# 如何正确选择一个元素';s来自B文档的值,c#,asp.net-mvc,mongodb,C#,Asp.net Mvc,Mongodb,所以我解释说,我有一个控制器,它在数据库中保存两个信息。id从一个文档转移到另一个文档。我实现了这一点,但我的id以这种方式保存: _id=57629cb900a09432b8b3ada4 但我希望它是这样的: 57629cb900a09432b8b3ada4 我不知道该怎么做,因为我使用first()方法获取bson文档的第一个元素 如果有人能帮我把控制器放在这里: 编辑:添加了@P57提供的代码(感谢他): 变成 string id = objDocument.GetElement("_
_id=57629cb900a09432b8b3ada4
但我希望它是这样的:
57629cb900a09432b8b3ada4
我不知道该怎么做,因为我使用first()方法获取bson文档的第一个元素
如果有人能帮我把控制器放在这里:
编辑:添加了@P57提供的代码(感谢他):
变成
string id = objDocument.GetElement("_id").Value.ToString();
因此,我们现在:
public ActionResult LancerComparaison(ResultViewModel resultViewModel)
{
if (resultViewModel!= null)
{
UserInformationViewModel info = resultViewModel.UserInformationViewModel;
var client = new MongoClient("mongodb://localhost:27017");
var objDatabase = client.GetDatabase("Test");
var collection = objDatabase.GetCollection<BsonDocument>("UsersInformations");
BsonDocument objDocument = new BsonDocument {
{"Nom",info.NomUser},
{"Prenom",info.PrenomUser},
{"Email",info.EmailUser},
};
collection.InsertOne(objDocument);
string id = objDocument.GetElement("_id").Value.ToString();
Session["IdentifiantUserInformation"] = id;
List<ObjetTransfert> listePrestationsObjetsTransferts = new List<ObjetTransfert>();
ResultatComparaison resultatComparaison;
ConvertGViewModelToGBd(resultViewModel, listePrestationsObjetsTransferts);
_compaSBT.ComparerP(listePrestationsObjetsTransferts, out resultatComparaison,
Enums.E.T);
//Enregistrer d'abord le resultat en Bd
resultatComparaison.IdentifiantResultatComparaison = new Guid().ToString();
resultatComparaison.IdentifiantUserInformation = id.ToString();
_resultatComparaisonService.Create(resultatComparaison);
Session["IdentifiantResultatComparaison"] = resultatComparaison.Id;
return View();
}
return null;
}
PublicActionResult LancerComparison(结果视图模型结果视图模型)
{
if(resultViewModel!=null)
{
UserInformationViewModel info=resultViewModel.UserInformationViewModel;
var客户端=新的MongoClient(“mongodb://localhost:27017");
var objDatabase=client.GetDatabase(“Test”);
var collection=objDatabase.GetCollection(“UsersInformations”);
BsonDocument objDocument=新的BsonDocument{
{“Nom”,info.NomUser},
{“Prenom”,info.PrenomUser},
{“Email”,info.EmailUser},
};
收藏。InsertOne(objDocument);
string id=objDocument.GetElement(“_id”).Value.ToString();
会话[“IdentificationUserInformation”]=id;
List ListPrestationSobJetsTransferts=新列表();
结果比较结果比较;
ConvertGViewModelToGBd(resultViewModel,listedprestationsobjetstransferts);
_compaSBT.CompareERP(列出预处理的JetsTransfers、输出结果比较、,
(E.T.);
//在Bd中登记结果
ResultAtComparison.IdentifiantResultAtComparison=新Guid().ToString();
ResultAtComparison.IdentificationUserInformation=id.ToString();
_resultaComparisonService.Create(resultaComparison);
会话[“IdentifiantResultatComparison”]=结果比较.Id;
返回视图();
}
返回null;
}
使用Split方法。它将字符串拆分为数组。拆分字符作为第一个参数给出
string[] tokens = "_id=57629cb900a09432b8b3ada4".Split('=');
tokens[0]; // _id
tokens[1]; // 57629cb900a09432b8b3ada4
在您的代码中,您可以编写替代此
var id = objDocument.First()
这个
这个怎么样
string id = objDocument.GetElement("_id").Value
而不是这个
var id = objDocument.First()
嗯,似乎是合法的,但我没有我的字符串,它是通过bson文档保存的。我不知道如何用我的code@ChristianPliso在你的C#中,你得到字符串了吗?我只是保存了对象的id,在我的db中它保存了我的方式,我只想保存id@ChristianPliso您的bson中有什么语法错误的问题?我猜,你将在C代码中使用id,那时候你可以拆分它。是的,在我的bson中,我有错误的语法。但是我怎样才能用子字符串拆分它呢?我不能给代码中的标记赋予一个看起来不错的值,但我做了这个var id=objDocument[“_id”],但似乎这不是正确的方法,我得到的id不好,但使用您的GetElement可以:),所以谢谢!很高兴这有帮助。你可能想重新表述你的问题的标题,因为它具有误导性@SurenSrapyan提供了它所要求的,也就是说,连接的反向操作是
拆分
,但您真正需要的是从BsonDocument中正确选择元素的值。您是对的,我做了更改,也许它会帮助其他人
string id = objDocument.GetElement("_id").Value
var id = objDocument.First()