MongoDB c# Update.PushWrapped,如何使用?

发布于 2024-12-09 13:28:53 字数 545 浏览 0 评论 0原文

我如何将一个项目推送到数组中? 我发现我只能插入基本值(String、Int32、Int64、Boolean),但我无法将自定义类的实例插入数组。

//in this way, it work:
var myPlayer = new i_Player();
this.mongo_collection.FindAndModify(
Query.EQ("_id",ID),
SortBy.Ascending("_id"),
Update.PushWrapped<i_Player>("_player", myPlayer),
true
);

// in this way, don't work because i_Player is not an BsonValue but is my CLASS!
var myPlayer = new i_Player();
this.mongo_collection.FindAndModify(
Query.EQ("_id",ID),
SortBy.Ascending("_id"),
Update.Push("_player", myPlayer),
true
);

How i can push an item in an Array?
I see that i can insert only basic value (String, Int32, Int64, Boolean) but i can't insert into an array an INSTANCE of custom class.

//in this way, it work:
var myPlayer = new i_Player();
this.mongo_collection.FindAndModify(
Query.EQ("_id",ID),
SortBy.Ascending("_id"),
Update.PushWrapped<i_Player>("_player", myPlayer),
true
);

// in this way, don't work because i_Player is not an BsonValue but is my CLASS!
var myPlayer = new i_Player();
this.mongo_collection.FindAndModify(
Query.EQ("_id",ID),
SortBy.Ascending("_id"),
Update.Push("_player", myPlayer),
true
);

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

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

发布评论

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

评论(1

情话难免假 2024-12-16 13:28:53

PushWrapped 与驱动程序 1.0 一起提供(似乎),只需将您的类转换为 BsonDocument

Update.PushWrapped<i_Player>("_player", myPlayer);

如果您使用 Update.Push,您需要这样做手动:

Update.Push("_player", myPlayer.ToBsonDocument()); 

我正在使用 ToBsonDocument() 将某些类对象转换为 BsonValue

所以,就选择你更喜欢什么吧..

PushWrapped coming with driver 1.0 (seems) and simply convert your class to BsonDocument:

Update.PushWrapped<i_Player>("_player", myPlayer);

In case if you using Update.Push you need to do it manually:

Update.Push("_player", myPlayer.ToBsonDocument()); 

I am using ToBsonDocument() to convert some class object to BsonValue.

So, just choose what do you like more..

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