【问题标题】:MongoDB NoRM: query nested objects using ExpandoMongoDB NoRM:使用 Expando 查询嵌套对象
【发布时间】:2011-03-21 08:22:05
【问题描述】:

我看到了这个 Q&A MongoDB Norm query nested objects,但它似乎只适用于强类型对象。

有没有办法在 Expando 对象 (https://github.com/atheken/NoRM/wiki/expando) 上查找或更新嵌套字段?基本上,我有一个简单的 JSON CMS 工具,它允许开发人员将文档对象存储在服务器上,然后将其提供给 Flash 客户端。我需要提供一个简单的服务,开发人员可以在其中创建 JSON 对象、保存它、进行嵌套查询以及更新这些对象。

由于数据结构未知,我认为这将是使用 MongoDB 的理想场所。不幸的是,.Net 似乎更适合强类型数据结构。

有什么想法吗?谢谢!

【问题讨论】:

    标签: c# mongodb dynamic expando nosql


    【解决方案1】:

    正如 Andrew 所说,由于文档类型在编译时未知,因此您无法获得对 expando 对象的智能支持。相反,您可以像这样查询它

                var query = new Expando();
                query["comments.Author"] = Q.Equals("R");
                Mongo mongo = new Mongo(connection);
                var reer = mongo.GetCollection<Expando>("Blog").Find(query).ToList();
    

    说明:

    这通过查询嵌入文档 cmets (cmets.Author="R") 来检索所有 Blog 文档。

    【讨论】:

      【解决方案2】:

      您当然可以这样做,只需 GetCollection("collectionName") 或 GetCollection("collectionName") 即可完成所有标准操作。使用 Expando 的缺点是您没有智能感知或 LINQ,但在您的情况下,没关系。

      【讨论】:

        猜你喜欢
        • 2021-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-23
        • 1970-01-01
        • 2012-07-23
        • 2016-09-05
        相关资源
        最近更新 更多