首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用DBRef显示Mongodb中两个集合的数据

如何用DBRef显示Mongodb中两个集合的数据
EN

Stack Overflow用户
提问于 2015-12-03 00:15:46
回答 1查看 1.1K关注 0票数 0

我的MongoDB中有两个主要的集合,用户和地址。我在我的第一个集合(用户)中使用'$ref‘和'$id’来引用第二个集合(地址)的文档。我想写一个查询来显示用户和他的地址的细节。

这是我第一次收集“用户”。它有一份文件

代码语言:javascript
复制
{
    "_id" : ObjectId("52ffc33cd85242f436000001"),
    "contact" : "987654321",
    "dob" : "01-01-1991",
    "name" : "Tom Benzamin",
    "address" : [ 
        {
            "$ref" : "address",
            "$id" : ObjectId("534009e4d852427820000002"),
            "$db" : "test"
        }, 
        {
            "$ref" : "address",
            "$id" : ObjectId("52ffc4a5d85242602e000000"),
            "$db" : "test"
        }
    ]
}

这是我第二次收集“地址”。它有3份文件

代码语言:javascript
复制
{
    "_id" : ObjectId("52ffc4a5d85242602e000000"),
    "building" : "22 A, Indiana Apt",
    "pincode" : 123456.0000000000000000,
    "city" : "Los Angeles",
    "state" : "California"
},
{
    "_id" : ObjectId("52ffc4a5d85242602e000001"),
    "building" : "170 A, Acropolis Apt",
    "pincode" : 456789.0000000000000000,
    "city" : "Chicago",
    "state" : "Illinois"
},
{
    "_id" : ObjectId("534009e4d852427820000002"),
    "building" : "22 A, Indiana Apt",
    "pincode" : 123456.0000000000000000,
    "city" : "Los Angeles",
    "state" : "California"
}

我已经编写了这段代码,但它不起作用。当我运行它时,它会显示'null‘这个词。

代码语言:javascript
复制
var user = db.users.findOne({"name":"Tom Benzamin"})
var dbRef = user.address
db[dbRef.$ref].findOne({"_id":(dbRef.$id)})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-03 15:29:18

它显示为null,因为dbRef是一个数组:

代码语言:javascript
复制
 {
    "0" : {
        "$ref" : "address",
        "$id" : ObjectId("52ffc4a5d85242602e000000"),
        "$db" : "test"
    },
    "1" : {
        "$ref" : "address",
        "$id" : ObjectId("534009e4d852427820000002"),
        "$db" : "test"
    }
}

试着用这个:

代码语言:javascript
复制
var user = db.users.findOne({"name":"Tom Benzamin"})
var dbRef = user.address
var ids = new Array();
for (i = 0; i < dbRef.length; i++){
    ids.push(dbRef[i].$id)
}
db[dbRef[0].$ref].find({"_id":{$in:ids}});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34055609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档