node.js - mongodb其中一个collection字段拆分成新collection的问题?
本文介绍了node.js - mongodb其中一个collection字段拆分成新collection的问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
mongodb建库的时候是这么建的:
test---collection
{
"_id" : ObjectId("5987fabbb48f868e50acf8ca"),
"地址" : "上实地产",
"状态(在用、废弃、闲置)" : "在用",
"附加信息" : 101547,
"所属类别" : "单位",
"ID" : NumberLong(300000131613),
"jingwei" : "120.485833,36.106991,上实地产,
120.486493,36.107104,上实地产,
120.487171,36.107046,上实地产,
120.487364,36.106383,上实地产,
120.48736,36.105858,上实地产"
}
我已经上面这种结构拆成,用户地理位置查询: fid就是 test- 中的_id
geo--collection
{
"_id" : ObjectId("59959a4ea007718916839e81"),
"fid" : "5987fabbb48f868e50acf8ca",
"coordinates" : [
120.487171,
36.107046
]
}
/ 2 /
{
"_id" : ObjectId("59959a4ea007718916839e82"),
"fid" : "5987fabbb48f868e50acf8ca",
"coordinates" : [
120.487364,
36.106383
]
}
/ 3 /
{
"_id" : ObjectId("59959a4ea007718916839e83"),
"fid" : "5987fabbb48f868e50acf8ca",
"coordinates" : [
120.48736,
36.105858
]
}
/ 4 /
{
"_id" : ObjectId("59959a4ea007718916839e87"),
"fid" : "5987fabbb48f868e50acf8ca",
"coordinates" : [
120.486493,
36.107104
]
}
/ 5 /
{
"_id" : ObjectId("59959a4ea007718916839e9c"),
"fid" : "5987fabbb48f868e50acf8ca",
"coordinates" : [
120.485833,
36.106991
]
}
请问,fid能不能转换成ObjId,我的思路是通过地理位置查询得到fid,然后通过fid得到test表中的相关信息.
解决方案
建Schema的时候设置类型了吗?
{
fid:Schema.Types.ObjectId
}
另外
可以看看mongoose的关联查询
建Schema的时候设置关联
fid: [{ type: Schema.Types.ObjectId, ref: 'test' }]
然后查询
geo.findOne(条件).populate("test").exec(function(err,data){
console.log(data);
})
可以直接查出下面 关联的数据直接就在fid里面:
"_id" : ObjectId("59959a4ea007718916839e9c"),
"fid" : [{
"_id" : ObjectId("5987fabbb48f868e50acf8ca"),
"地址" : "上实地产",
"状态(在用、废弃、闲置)" : "在用",
"附加信息" : 101547,
"所属类别" : "单位",
"ID" : NumberLong(300000131613),
"jingwei" : "120.485833,36.106991,上实地产,
120.486493,36.107104,上实地产,
120.487171,36.107046,上实地产,
120.487364,36.106383,上实地产,
120.48736,36.105858,上实地产"
}],
"coordinates" : [
120.485833,
36.106991
]
这篇关于node.js - mongodb其中一个collection字段拆分成新collection的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文