gpt4 book ai didi

c# - 从 MongoDB 查询嵌套对象

转载 作者:可可西里 更新时间:2023-11-01 09:12:37 26 4
gpt4 key购买 nike

我在 SSIS 中创建了一个脚本来从 MongoDB 检索数据。虽然我在查询常规文档时没有任何问题,但我不确定如何从嵌套文档中检索值。例如,“地址”扩展包含“国家”、“州”、“城市”、“街道”和“ zip ”。我只对检索“国家”(字段)值感兴趣。理论上,我知道它应该是“Address.Country”之类的东西,但我不知道如何在我的代码中实现它。实现这一目标的最佳方法是什么?

这是检索所有其他文档的代码:

    public override void CreateNewOutputRows()
{
string connectionString = "mongodb://localhost";
MongoServer myMongo = MongoServer.Create(connectionString);
myMongo.Connect();
var db = myMongo.GetDatabase("UserDB");
/*ICursor<BsonDocument> cursor = db.GetCollection<BsonDocument>("UserDB").FindAll();*/
foreach (BsonDocument document in db.GetCollection<BsonDocument>("UserDB").FindAll())
{
this.UserDBBuffer.AddRow();
this.UserDBBuffer.ID = document["_id"] == null ? "" : document["_id"].ToString();

this.UserDBBuffer.PrimaryEmail = document["primary_email"] == null ? "" : document["primary_email"].ToString();
this.UserDBBuffer.Gender = document["gender"] == null ? "" : document["gender"].ToString();

}
}

最佳答案

您可以在 C# 中对 FindAll 返回的游标使用 SetFields 来做到这一点:

var fields = Fields.Include("Address.Country");
foreach (var document in collection.FindAll().SetFields(fields))
{
Console.WriteLine(document.ToJson());
}

您可以使用以下方法从返回的文档中提取国家/地区值:

var country = document["Address"].AsBsonDocument["Country"].AsString;

关于c# - 从 MongoDB 查询嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8660711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com