C#获取mongoDB的ObjectId 映射到对象中失败

发布于 2022-09-12 01:47:28 字数 1152 浏览 21 评论 0

从mongoDB聚合获取到了 Bson,现在想把这个Bson转换为实体对象
可是 ObjectId始终无法转换,希望大牛们解一下惑

可以怎样把 Bson 绑定到一个自定义 对象上
或者,怎样可以把获取到的 ObjectId 转 string
感激不尽

在步骤二,Json转换为实体对象时,提示我ObjectId转换失败

详细:
1.这是通过聚合和获取到的结果
`

        List<BsonDocument> pipe = mRoot.answerRecord.GetAggregate()
            .Match(x => x.userId == userId && x.subjectId == subjectId)
            .Match(x => x.correct == 0 || x.correct == 1)
            .Sort(BsonDocument.Parse("{ 'mtime' : -1 }"))
            .Lookup("question", "questionId", "_id", "question")
            .Skip(pageSize * (page - 1))
            .Limit(pageSize).ToList();

`
2.这是我尝试遍历 并转换为实体对象
`foreach(var p in pipe)

            {
                //TODO ObjectId 转换存疑
                var j = p.ToJson();
                ErrorRecordsResult r = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorRecordsResult>(j);
                results.Add(r);
            }

`

3.实体对象
`public class ErrorRecordsResult

{
    public ObjectId _id { get; set; }

    public int cate; 
}`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

羁〃客ぐ 2022-09-19 01:47:28

你用的是 MongoDB.Bson 这个库么?直接 ToString() 不就完了?


针对评论区的补充:

image.png

奶气 2022-09-19 01:47:28

其实可以直接转换为指定类对象,而不用先转换为BsonDocument的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文