Mongoose Geolocation 设置默认坐标
Posted
技术标签:
【中文标题】Mongoose Geolocation 设置默认坐标【英文标题】:Mongoose Geolocation set default coordinates 【发布时间】:2021-01-30 19:53:06 【问题描述】:我正在尝试使用默认坐标创建猫鼬地理定位记录。我可以设置默认值,以便将它们序列化,但它们并没有真正提交给数据库,因此地理空间查询将不起作用。这是我正在做的事情(简化)
const Place = new mongoose.Schema(
name: type: String, required: true ,
location:
type:
type: String,
enum: ['Point'],
required: true,
default: 'Point'
,
coordinates:
type: [Number],
required: true,
default: function ()
return [0, 0] // Just 0, 0 for the example
当我在 mongo shell 中拉起记录时,根本没有 location
键。
【问题讨论】:
如果你想在你的项目中使用地理定位,你可以使用Redis
这很棒
【参考方案1】:
我不知道更有效的方法 但试试这个:
//pass data like this in your controller
Store.create(name, lat, lon)
让你的模型像这样
const Place = new mongoose.Schema(
name: type: String, required: true ,
lat: type: String,
lon: type: String,
location:
type:
type: String,
enum: ['Point'],
,
coordinates:
type: [Number],
index: '2dsphere'
// run before saving documents
Place.pre('save', function(next)
this.location =
type: 'Point',
coordinates: [this.lat, this.lon]
;
next();
);
【讨论】:
以上是关于Mongoose Geolocation 设置默认坐标的主要内容,如果未能解决你的问题,请参考以下文章
将 Mongoose 文档中的默认日期设置为 now + [一些增量]
将 Mongoose 文档中的默认日期设置为 now + [一些增量]