【问题标题】:Querying with a field stored as Int64 in nodejs mongodb在nodejs mongodb中使用存储为Int64的字段进行查询
【发布时间】:2018-04-03 05:02:47
【问题描述】:

我有一个集合,其中 userID 字段存储为 Int64。当我在这个集合上使用.find({}) 时,userID 字段作为字符串返回。但是,当我尝试使用 .findOne({ userID: req.query.userID } 在集合中查找一个特定项目时,我总是没有得到任何结果。我可以确认我传递给查询的值存在于集合中(但它是作为字符串传递的)。

我知道 javascript 不能处理 Int64,但是如果该字段作为字符串返回,有没有办法使用字符串来查询它?还是我别无选择,只能修改字段以将其存储为字符串开头?

【问题讨论】:

    标签: node.js mongodb int64


    【解决方案1】:

    当您执行findOne() 时,请长时间使用包装器,如下所示:

    .findOne({userID:NumberLong(req.query.userID)})  
    

    【讨论】:

    • 谢谢,出于某种原因,我从没想过要检查文档中的其他数据类型...NumberLong 似乎只是 shell,显然需要的是 var Long = require('mongodb').Long; Long.fromString(req.query.userID)
    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    相关资源
    最近更新 更多