为什么我不能将PriorityQueue存储到MongoDB中

发布时间:2020-07-07 14:03

最近,我决定用优先级队列替换阵列,以将我的用户作业列表存储到MongoDB中。我将NodeJS和ExpressJS用于后端。我尝试存储的优先级队列来自外部软件包,可以通过在终端中运行以下命令来安装该软件包:

yarn add js-priority-queue

出于某种原因,优先级队列在将其存储到MongoDB中之前可以正常工作。但是,下次我尝试将其从MongoDB中取出并使用时,其功能丢失了。我在架构中将其类型声明为Schema.Types.Mixed。我是在做错什么,还是无法将实例化的类对象存储到MongoDB中?

回答1

据我所知,当您将内容存储在MongoDB中时,它们以二进制格式(BSON)作为扩展 JSON(EJSON)存储

    const { EJSON } = require('bson');    
    const test = EJSON.stringify({a: new Date(), foo:function(){console.log('foo');}})
    console.log(test) // "{"a":{"$date":"2020-07-07T14:45:49.475Z"}}"

所以所有功能都会丢失。