【问题标题】:How to reference a document in Mongodb Using MongodbRef and How to get combined document如何在 Mongodb 中使用 MongodbRef 引用文档以及如何获取组合文档
【发布时间】:2014-06-17 13:29:40
【问题描述】:

嗨,我是 Mongo db 的新手,我有这样的类结构来存储表情符号和表情符号类别。我在 smilies 类中创建了一个 mongodef 属性,用于引用 smilies 类别集合,但可以获取 smilies 类别名称...

public class smilies {
    public ObjectId _id { get; set; }
    public MongoDBRef scat_name{ get; set; }
    public string smil_url { get; set; }
    public string smil_detail { get; set; }
}

public  class smilies_category {
    public ObjectId _id { get; set; }
    public string scat_name { get; set; }
}

我使用下面的代码来获取记录,记录来自一个文档

function void getSmilies(){
  var refDocument = new BsonDocument { 
            {"$ref", "smil_scat_id"}, 
            {"$id", "539ef7c2e46b621314956e3b"}
        };

        var query = Query.EQ("smilies_category", refDocument);
        var result = db.GetCollection("smilies").Find(query)

}

现在我想要的是合并结果集

 "_id" : ObjectId("539f3ec1e46b62120023d364"),
 "scat_name : "Bussines",
 "smil_url" : "www.gmail.com",
 "smil_detail" : "Ok fine",

我们怎样才能做到这一点? 我走对了吗? 请告诉我解决方案

【问题讨论】:

  • 天哪,又来了? MongoDB 不做 Joins。

标签: mongodb mongodb-.net-driver mongodb-query mongo-collection mongo-c-driver


【解决方案1】:

你的班级类型应该是

public class smilies {
    public ObjectId _id { get; set; }
    public MongoDBRef scat_name{ get; set; }
    public string smil_url { get; set; }
    public string smil_detail { get; set; }
    public string[] CategoryName {get; set:}
}

而 MongoDB 文档将是

{
_id:"".
smil_url :"",
...
...

CategoryName:[
            "cat1",
            "Cat2",
            ....
          ]
}

并将您的查询更改为相当于 C# 驱动程序中的 $in 运算符

【讨论】:

    猜你喜欢
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2016-03-26
    • 2016-11-04
    相关资源
    最近更新 更多