그래서 설명 하겠지만 데이터베이스에는 두 가지 정보를 저장하는 컨트롤러가 있습니다. 이드는 한 문서에서 다른 문서로 옮겨집니다. 나는 이것을 달성하지만 내 ID는 그런 식으로 저장됩니다BsonDocument에서 요소 값을 올바르게 선택하는 방법
_id=57629cb900a09432b8b3ada4
그러나 내가 이렇게 원하는 : 나는의 주먹 요소를 데려 갈거야 때문에 작업을 수행하는 방법을 볼 수 없습니다
57629cb900a09432b8b3ada4
을 first() 메소드가있는 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;
}
그게 좋을 것 같습니다하지만 var id = objDocument [ "_ id"]하지만 올바른 방법이 아닌 것 같아요. 나쁜 아이디를 얻었지만 GetElement를 사용하면 괜찮습니다. :) 감사합니다! –
도움이 되니 기쁩니다.오해의 소지가 있으므로 질문의 제목을 다시 말해야 할 수도 있습니다. @SurenSrapyan은 'split'인 concatenate의 반대 동작에 대해 묻는 것을 제공했지만 실제로 필요한 것은 BsonDocument에서 요소의 값을 적절히 선택하는 것이 었습니다. – u8it
네 말이 맞아, 나는 변화를 만들었다. 다른 사람들에게 도움이 될지도 모른다. –