$ id如何帮助mongodb?

时间:2013-03-10 06:05:25

标签: mongodb reference

我已经将mongodb文档作为其他文档的参考。但我认为它不像我希望的那样工作!

例如:

> db.ttt.insert({_id: "a", b:"b" })
> db.ttt.insert({_id: "b", b: {$id:"a" } })
> db.ttt.find()
{ "_id" : "a", "b" : "b" }
{ "_id" : "b", "b" : { "$id" : "a" } }

因为我最后一次插入裁判是第一次,所以它应该等同于:

{
   _id: "b", 
    b: {

         {_id: "a", b:"b" }

       } 
}

为什么这个查询失败了?

> db.ttt.find({"b.b":"b"} ) 

我可能已经理解$id的财产是错误的。但如果不能通过引用来完成,那么我有另一种选择吗?引用有什么好处?

1 个答案:

答案 0 :(得分:0)

首先,在文档中嵌入文档与引用文档不同。在您的情况下,您指的是文档而不是嵌入。因此,您不应该像嵌入式文档那样对待它。你正在做的是查询它,好像你有嵌入的文件,它不是。

Mongodb文档非常清楚如何使用引用,我认为您必须访问the mongodb documentation for referencing。但简而言之,一旦你从db.ttt.find({ "_id" : "b"})获得了结果,那么你的应用程序应该进行另一个查询,找到你在第一个查询中得到的引用所引用的文档。

要记住的重要事项是,在嵌入式文档的情况下,您可以运行一个查询以从嵌入式文档中获取结果,而在引用文档中,您必须获取第二个查询的帮助。

相关问题