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]