所以我解释一下,我有一个控制器,可以在数据库中保存两个信息。 id从一个文档转到另一个文档。我达到了这个目的,但我的身份就是这样保存的:
_id=57629cb900a09432b8b3ada4
但我希望这样:
57629cb900a09432b8b3ada4
我看不出怎么做,因为我用第一个()方法取bson文档的第一个元素。
如果有人可以帮我把控制器放在这里:
编辑:添加@ P57提供的代码(感谢他):
var id = objDocument[_id];
成为
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;
}
答案 0 :(得分:1)
使用拆分方法。它会将字符串拆分为数组。分裂字符作为第一个参数给出。
string[] tokens = "_id=57629cb900a09432b8b3ada4".Split('=');
tokens[0]; // _id
tokens[1]; // 57629cb900a09432b8b3ada4
在您的代码中,您可以编写代替此
var id = objDocument.First()
此
var id = objDocument.First().Split('=')[1];
答案 1 :(得分:1)
这个怎么样?
string id = objDocument.GetElement("_id").Value
而不是......
var id = objDocument.First()