Mongodb 如何在mongoose中获取数字长记录

Mongodb 如何在mongoose中获取数字长记录,mongodb,mongoose,mean-stack,Mongodb,Mongoose,Mean Stack,我的文档中有一个字段 "p_id" : NumberLong(2328703838) 我试着像下面那样去拿它 spec.find({p_id: id}) 我的身份证是2328703838。。。但是,即使数据存在,我也无法获取记录。有人能提供帮助吗?谢谢。您必须使用才能在mongoose中获得数字长支持 将数据类型定义为SchemaTypes.Long,并使用Long.fromString(“2328703838”)创建一个Long对象: 我真的不明白为什么他们必须为每种数据类型创建一个单独

我的文档中有一个字段

 "p_id" : NumberLong(2328703838)
我试着像下面那样去拿它

spec.find({p_id: id})
我的身份证是2328703838。。。但是,即使数据存在,我也无法获取记录。有人能提供帮助吗?谢谢。

您必须使用才能在mongoose中获得数字长支持

将数据类型定义为
SchemaTypes.Long
,并使用
Long.fromString(“2328703838”)
创建一个Long对象:


我真的不明白为什么他们必须为每种数据类型创建一个单独的npm包
NumberRint
NumberLong
是MongoDB内置支持的类型,为什么不在
mongoose
中正确支持它们?如何将
mongoose long
插件与es6一起使用?
var mongoose = require('mongoose')
require('mongoose-long')(mongoose);

var SchemaTypes = mongoose.Schema.Types;
var Long = mongoose.Types.Long;

var SpecSchema = new mongoose.Schema({
    p_id: SchemaTypes.Long
});

var Spec = mongoose.model('Spec', SpecSchema);

var db = mongoose.connect('localhost', 'testDB');

var id = Long.fromString("2328703838");

Spec.find({ p_id: id }, function(err, res) {
    if (err) {
        console.log(err);
        return;
    }
    console.log(res);
});