我使用的是nodejs中的mongodb模块,在想article表插入数据时,需要引用user表的一个字段,所以我在插入数据时插入一个
authorId:{
'$ref':'user',
'$id':ObjectId('59c402c162bfdc0b1840285d'),
}
然后我在查询时使用的是:db.collection('article').find();
显示的数据
{
"_id" : ObjectId("59c404f41482f323a0b22b92"),
"articleTit" : "亲亲我的宝贝",
"content" : "暗示健康圣诞节快乐四大皆空时代峰峻客户电饭锅电饭锅",
"synopsisi" : "暗示健康圣诞节快乐四大皆空时代峰峻客户电饭锅电饭锅",
"time" : 1506018548681.0,
"authorHeadImg" : "head.jpg",
"authorId" : {
"$ref" : "user",
"$id" : ObjectId("59c402c162bfdc0b1840285d")
},
"author" : "我是一个渣渣",
"viewNumber" : NaN
}
{
"_id" : ObjectId("59c404f41482f323a0b22b92"),
"articleTit" : "亲亲我的宝贝",
"content" : "暗示健康圣诞节快乐四大皆空时代峰峻客户电饭锅电饭锅",
"synopsisi" : "暗示健康圣诞节快乐四大皆空时代峰峻客户电饭锅电饭锅",
"time" : 1506018548681.0,
"authorHeadImg" : "head.jpg",
"authorId" : {
"$ref" : "user",
"$id" : ObjectId("59c402c162bfdc0b1840285d")
},
"author" : "我是一个渣渣",
"viewNumber" : NaN
}
我想问的是,我这样一次查询多条,在authorId字段。为什么不是直接显示的用户信息,
{
"_id" : ObjectId("59c402c162bfdc0b1840285d"),
"phone" : "13686097633",
"pwd" : "wo521521",
"nickname" : "路生",
"personal_profile" : "我是一个渣渣,我坚信不疑。",
"email" : "",
"headImg" : "head.jpg",
"sex" : 3,
"session" : "79ae2472004bd096ae7ea8adacc5ea218a81ec01a70e76d92f541ba9ee88d6f2"
}
那这样我一次查询多条,我如何获取用户的信息,并且对应到每一条去。
MongoDB 数据库本身是没有类似 mysql 的关联查询的.
如果你实现你这个功能,
可以用 mongoose 定义好 article 和 author 的 schema,然后用 populate 操作来实现.
或者
自己通过便利所有author字段,然后查询对应的文档然后,修改查询出的结果.