【发布时间】:2017-07-15 10:29:54
【问题描述】:
我的文档中有一个字段为
"p_id" : NumberLong(2328703838)
我尝试如下获取它
spec.find({p_id: id})
我的 id 是 2328703838...但即使存在数据我也无法获取记录。谁能提供帮助。谢谢。
【问题讨论】:
标签: mongodb mongoose mean-stack
我的文档中有一个字段为
"p_id" : NumberLong(2328703838)
我尝试如下获取它
spec.find({p_id: id})
我的 id 是 2328703838...但即使存在数据我也无法获取记录。谁能提供帮助。谢谢。
【问题讨论】:
标签: mongodb mongoose mean-stack
您必须使用 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);
});
【讨论】:
NumberInt 和 NumberLong 是 MongoDB 内置支持的类型,为什么不在 mongoose 中支持它们呢?
mongoose-long 插件?