在 MongoDb 中插入时,如何指定坐标的 BSON 类型?
How can I specify BSON type for coordinates when inserting in MongoDb?
我有以下 document
,我想在其上创建 2dsphere index
,但 coordinates field
必须是 integer BSON type
才能创建。但是,来自 client
的 data 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)
})
}
我有以下 document
,我想在其上创建 2dsphere index
,但 coordinates field
必须是 integer BSON type
才能创建。但是,来自 client
的 data 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)
})
}