Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 通过mongoose更新NumberLong会变成时间戳_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 通过mongoose更新NumberLong会变成时间戳

Node.js 通过mongoose更新NumberLong会变成时间戳,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个bar集合,每个文档有两个字段,对应于mongoose上的以下barSchema描述: const barSchema = mongoose.Schema( { "_id": SchemaTypes.ObjectId, "index": SchemaTypes.Long, }, { collection : 'bar' } ); 我在barcollection上有一个唯一的文档,我使用以下命令插入该文档: db.bar.insert( { _id: Obje

我有一个
bar
集合,每个文档有两个字段,对应于mongoose上的以下
barSchema
描述:

const barSchema = mongoose.Schema(
  {
    "_id": SchemaTypes.ObjectId,
    "index": SchemaTypes.Long,
  },
  { collection : 'bar' }
);
我在
bar
collection上有一个唯一的文档,我使用以下命令插入该文档:

db.bar.insert( { _id: ObjectId('565a07b5c1c80e6ee05cc326'),  index: NumberLong(1)} )
我可以通过以下操作在mongo shell上成功更新该文档:

db.bar.update( { _id: ObjectId("565a07b5c1c80e6ee05cc326")} , {$set:{index: NumberLong(7)}})
然而,如果我通过mongoose执行相同的操作,那么文档将不会以相同的方式更新。我在node.js和mongoose中使用了前面的
barSchema
的以下语句:

const BarModel = mongoose.model('bar', barSchema);
BarModel.update(
  { _id: '565a07b5c1c80e6ee05cc326'},
  {$set: {index: '7'}},
  (err, tank) => {
    if (err) console.log(err);
    else console.log(tank);
  }
)
此更新后,生成的文档为:

{ "_id" : ObjectId("565a07b5c1c80e6ee05cc326"), "index" : Timestamp(0, 0) }

我也尝试过使用
mongoose.Types.long.fromString(“7”)
中的long值进行更新,但没有任何效果,结果总是这样。

您是否将库用于
long
类型?我将mongoose long用于NumberLong mongodb类型