Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何正确选择一个元素';s来自B文档的值_C#_Asp.net Mvc_Mongodb - Fatal编程技术网

C# 如何正确选择一个元素';s来自B文档的值

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从一个文档转移到另一个文档。我实现了这一点,但我的id以这种方式保存:

_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()