猫鼬和浮点值

2024-04-13

我的纬度和经度数字正在转换为字符串。我的部分整数仍然是 Number 的正确数据类型。如何设置模型,以便我可以将纬度和经度恢复为浮点而不是字符串?

我将 latLng 数据存储在我的数据库中。现在我将纬度和经度的数据类型设置为“数字”。当我检查我的数据库时,我看到这个:

{
  "_id" : ObjectId("563bd98a105249f325bb8a7e"),
  "lat" : 41.8126189999999980,
  "lng" : -87.8187850000000054,
  "created" : ISODate("2015-11-05T22:34:50.511Z"),
  "__v" : 0,
  "section" : 0,
}

但是当我使用 Express 取回数据时,我得到以下信息:

{
  "_id": "563bd98a105249f325bb8a7e",
  "lat" : "41.8126189999999980",
  "lng" : "-87.8187850000000054",
  "__v": 0,
  "section" : 0,
  "created" : "2015-11-05T22:34:50.511Z",
}

我的型号:

var WaypointSchema = new Schema({
    lat: {
        type: Number
    },
    lng: {
        type: Number
    },
    section: {
        type: Number
    }
    created: {
        type: Date,
        default: Date.now

    }
});

mongoose.model('Waypoint', WaypointSchema);

快递控制器:

exports.list = function(req, res) { 
    Waypoint.find().sort('-created').populate('user', 'displayName').exec(function(err, waypoints) {
        if (err) {
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
            res.jsonp(waypoints);
        }
    });
};

虽然 mongoDB 完全支持float类型,猫鼬仅支持类型Number这是整数。如果您尝试使用 mongooses 类型保存到 mongoDB 浮点数Number它将被转换为字符串。

为了解决这个问题,您需要加载一些 mongoose 插件,这将扩展其值类型。有一些插件最适合货币或日期,但在你的情况下我会使用https://www.npmjs.com/package/mongoose-double https://www.npmjs.com/package/mongoose-double.

更改后的模型将如下所示:

var mongoose = require('mongoose')
require('mongoose-double')(mongoose);

var SchemaTypes = mongoose.Schema.Types;
var WaypointSchema = new Schema({
    lat: {
        type: SchemaTypes.Double
    },
    lng: {
        type: SchemaTypes.Double
    },
    section: {
        type: Number
    }
    created: {
        type: Date,
        default: Date.now
    }
});

mongoose.model('Waypoint', WaypointSchema);

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

猫鼬和浮点值 的相关文章

随机推荐

  • 将对象序列化为 XML

    我有一个继承的 C 类 我已经成功地 构建 了该对象 但我需要将对象序列化为 XML 有简单的方法吗 看起来该类已设置为序列化 但我不确定如何获取 XML 表示形式 我的类定义如下 System CodeDom Compiler Gener
  • ARC 是否保留无主引用的计数?

    ARC 是否保留对对象的无主引用的计数 那么 如果一个对象的强引用计数达到 0 并且该对象的无主引用计数 gt 0 则该对象将被取消初始化但不会被取消分配 只有当强引用计数和无主引用计数达到 0 时 它才会被释放 我在 Medium 上的一
  • GCC 错误:非命名空间范围中的显式专业化

    我正在尝试移植以下代码 我知道该标准不允许在非名称空间范围内显式专业化 我应该使用重载 但我只是找不到在这种特殊情况下应用此技术的方法 class VarData public template lt typename T gt bool
  • vs2008/vs2010 在 TextBox 中是否有插入符位置更改事件?

    我需要留意文本框内的插入符号位置 有这方面的活动吗 我不想为此使用计时器 例如 每 10 毫秒检查一次位置是否发生变化 我正在使用 Windows 窗体 本机 Windows 控件不会为此生成通知 尝试解决此限制会带来痛苦 您只是无法分辨插
  • 一次性返回所有可枚举的yield return;不循环

    我有以下函数来获取卡的验证错误 我的问题涉及处理 GetErrors 两种方法具有相同的返回类型IEnumerable
  • git:小型项目工作

    我目前正在尝试遵循 Pro Git 书中提到的基于小型项目的工作组 http progit org book ch5 2 html http progit org book ch5 2 html 所以 这是我的设置 Live Website
  • EF4 CTP5 自引用分层实体映射

    好吧 这应该很容易 但我一直在抓狂 这是我的 POCO 与机器零件有关 因此零件可以包含在父零件中 public class Part public int ID get set public string Name get set pub
  • 如何更新数组范围变量中的值?

    我有一个存储存档的作用域变量 viewScope MY SCOPE new Array viewScope MY SCOPE push id0 0 true viewScope MY SCOPE push id1 1 false viewS
  • 扩展 std 命名空间被视为未定义行为的原因是什么?

    为什么要添加名字std命名空间未定义的行为 显而易见的答案是 因为标准是这么说的 例如在 C 14 命名空间 std 17 6 4 2 1 1 中 如果 C 程序向命名空间添加声明或定义 则其行为是未定义的std或到一个 命名空间内的命名空
  • 以编程方式在片段之间切换

    我想在 1 个活动中的 2 个片段之间切换 因此另一个片段应始终替换当前片段 但我找不到我的错误 我的主要活动 Override protected void onCreate Bundle savedInstanceState super
  • 键入lattice命令后图形不显示

    我安装了这个包lattice 并输入xyplot 没有错误消息 但也没有显示图表 我尝试切换到plot 而且效果很好 知道为什么会这样吗 谢谢你 尝试这个 require lattice require stats Depth lt equ
  • 如何正确安装SonataDoctrineMongoDBAdminBundle?

    我真的很紧张 因为缺乏足够的资源来安装 SonataDoctrineMongoDBAdminBundle 及其依赖项 例如 sonataUserBundle 我已经尝试安装这个捆绑包 15 天了 我一次又一次地做了奏鸣曲官方页面上所说的一切
  • 任何人都可以做到这一点吗?如何将 VS-Code 多个扩展从一种语言特定扩展切换到另一种语言特定扩展?

    有时我必须在 VS Code 上使用不同的编程语言 但问题是我必须禁用以前语言中使用的所有以前的扩展 这使得 VS Code 工作繁重 例如 如果我正在使用 PHP 并且必须转向 python 或 javascript 那么我必须禁用所有扩
  • Teamcity 9:如何将 git 短哈希添加到程序集信息修补程序中

    我正在尝试使用程序集信息修补程序来创建一个版本号 例如 1 2 3 1a3c19e 其中最后一位是 git 短哈希 我尝试使用 powershell 脚本构建步骤来创建短哈希 因为我找不到包含它的变量 并将其添加到系统变量中 但此构建步骤似
  • 如何镜像和调整图像中固定宽度和高度的部分

    我正在构建 从照片标记 功能 当用户移动或捏住图像上的方块时 PanResponder 改变 x 坐标 左 y 坐标 上 正方形长度 thumbSize 的状态 有了数据 我想实时显示正方形的部分 因此 下图应放置在上图中 A All Al
  • 如何在对话框和活动之间传递值?

    我要求用户通过对话框输入 package com android cancertrials import android app Dialog import android content Context import android os
  • 在 Metro 应用 XAML 中的 ListView 中设置 SelectedItem 样式

    我在设置 Metro 应用程序列表框中所选项目的样式时遇到问题 我已经为该项目创建了 DataTemplate 其中有一个我想要更改颜色的 TextBlock 我在 WPF 中尝试了很多东西 但它们不适用于 Metro 例如 DataTem
  • 将应用程序从 Xcode 部署到设备而不启动应用程序

    我正在尝试追踪 0x8badf00d 错误 该错误是由于看门狗进程在启动时杀死我们的应用程序花费太长时间而引起的 问题是它只发生在应用程序第一次启动时 当应用程序创建我们的数据库时 因此 我需要能够将应用程序从 XCode 部署到我的 iP
  • 如何使用对齐的空格字符将 python pandas.DataFrame 写入文件?

    我想将 pandas DataFrame 存储到一个文本文件中 该文件的列使用空格字符对齐 如果这是我的示例数据框 In 1 import numpy as np In 2 import pandas as pd In 3 df pd Da
  • 猫鼬和浮点值

    我的纬度和经度数字正在转换为字符串 我的部分整数仍然是 Number 的正确数据类型 如何设置模型 以便我可以将纬度和经度恢复为浮点而不是字符串 我将 latLng 数据存储在我的数据库中 现在我将纬度和经度的数据类型设置为 数字 当我检查