【问题标题】:Mongoose.js - array of geospatial locationsMongoose.js - 地理空间位置数组
【发布时间】:2012-11-23 21:50:46
【问题描述】:

我需要这样的东西

{
    event : "something",
    location : [
        {
            long:25, lat:34
        }.
        }
            long:25, lat:35
        }.
        .
        .
        .
    ]
}

这可能吗?是否可以为位置字段设置地理空间索引?我会询问 $nearSphere。

谢谢

编辑:猫鼬模式问题

让架构条目类似于 location : [{ lon : Number, lat: Number}] 让我最终为位置数组中的每个对象添加一个额外的 _id。 1.有问题吗? 2. 麻烦事? 3. 有什么可以解决的吗?

例如: { “隆”:1, “纬度”:2, "_id":"50bfeea2a3092d1d67000007" },

【问题讨论】:

  • 我会在location 数组元素之间使用, 而不是. :)。但说真的,为什么不工作,你试过吗?检查手册中的Geospatial Indexing,听起来我正是你想要的。
  • 我已经读了三遍了,刚才我看到了 geoNear 中该死的 Spherical true 部分。如果你愿意,你可以回答这个问题,这样我就可以接受它以供将来参考。
  • 其实我应该用猫鼬中的一个实际问题来修改这个问题。请检查编辑。
  • 我看到@JohnnyHK 已经回答了您编辑的问题,

标签: node.js mongodb mongoose


【解决方案1】:

如果您不希望每个 location 元素都有一个 _id 字段,您可以通过显式定义元素的架构并将 _id 选项设置为 false 来禁用它。

像这样:

var testSchema = new mongoose.Schema({
    event: String,
    location: [new Schema({long: Number, lat: Number}, {_id: false})]
});

【讨论】:

  • 好的,非常感谢。但是……我应该吗?还是我不应该?不过,我不认为我会通过这些 id 进行搜索。
  • @InnocentPixel 如果你不打算通过 id 访问元素并且你有很多元素,我会禁用它,因为它们每个至少 12 个字节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多