如何在mongoose中获取NumberLong记录

时间:2017-02-24 14:32:17

标签: mongodb mongoose mean-stack

我的文档中有一个字段

 "p_id" : NumberLong(2328703838)

我尝试如下获取它

spec.find({p_id: id})

我的身份证号码是2328703838 ...但即使数据存在,我也无法取得记录。任何人都可以提供帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

您必须使用mongoose-long在mongoose中获得Number Long支持。

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

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);
});