2

我在模式(简单模式)中有一个数字数据类型,但在使用 collections2 时无法在其中存储浮点数:

Schema.Coordinates = new SimpleSchema({ lng: { type: Number, min: -180.0, max: 180.0 }, lat: { type: Number, min: -90.0, max: 90.0 } });

当我尝试插入除整数以外的任何内容(带有 xxxx.0 的任何内容)时,我收到验证错误:

W20150222-20:24:23.523(-8)? (STDERR) Error: Lng must be an integer

4

2 回答 2

4

如前所述,设置decimal为 true 将允许浮点数。

我只是想提出另一个建议。由于您正在尝试存储日志/纬度,这将是一个更好的模式:

loc:
   type: Object
   index: '2dsphere'
   label: "Location"

"loc.type": 
   type: String
   allowedValues: [ "Point" ]
   label: "Start location type"

"loc.coordinates":
   type: [Number]
   minCount: 2
   maxCount: 2
   decimal: true

这允许您以GeoJSON格式存储坐标,以便您可以在服务器上使用 Mongo 的空间运算符(例如$near)。

于 2015-02-23T09:37:18.687 回答
3

您可以设置decimal为 true ( docs )。我想这有点像可选的 else 就像其他答案一样。

Schema.Coordinates = new SimpleSchema({
    lng: {
        type: Number,
        min: -180.0,
        max: 180.0,
        decimal:true,
    },
    lat: {
        type: Number,
        min: -90.0,
        max: 90.0,
        decimal: true,
    }
});
于 2015-02-23T07:28:24.923 回答