在 MongoDb 中插入时,如何指定坐标的 BSON 类型?

How can I specify BSON type for coordinates when inserting in MongoDb?

我有以下 document,我想在其上创建 2dsphere index,但 coordinates field 必须是 integer BSON type 才能创建。但是,来自 clientdata type 作为坐标的 string 出现。

所以我想在插入 MongoDb 之前将其更改为整数,以便之后创建索引。 我该怎么做?

user.saveSubscriber = (jSubscriberData, fCallback) => {
    var jSubscriber = {
        email: jSubscriberData.txtEmail,
        firstName: jSubscriberData.txtName,
        lastName: jSubscriberData.txtLastName,
        address: {
            type: "Point",
            coordinates: [jSubscriberData.lng, jSubscriberData.lat]
        }
    }
    global.db.collection('subscribers').insertOne(jSubscriber, (err, jResult) => {

        if (err) {
            var jError = { "status": "error", "message": "ERROR -> saveSubscriber -> user.js -> 001" }
            return fCallback(false, jError)
        }
        var jOk = { "status": "ok", "message": "user.js ->  subscriber saved -> 000" }
        return fCallback(false, jOk)
    })
}

在使用 parseFloat()

存储之前将字符串解析为浮点数
user.saveSubscriber = (jSubscriberData, fCallback) => {
var jSubscriber = {
    email: jSubscriberData.txtEmail,
    firstName: jSubscriberData.txtName,
    lastName: jSubscriberData.txtLastName,
    address: {
        type: "Point",
        coordinates: [parseFloat(jSubscriberData.lng), parseFloat (jSubscriberData.lat)]
    }
}
global.db.collection('subscribers').insertOne(jSubscriber, (err, jResult) => {

    if (err) {
        var jError = { "status": "error", "message": "ERROR -> saveSubscriber -> user.js -> 001" }
        return fCallback(false, jError)
    }
    var jOk = { "status": "ok", "message": "user.js ->  subscriber saved -> 000" }
    return fCallback(false, jOk)
})

}