提问者:小点点

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


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

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"}}"

因此任何类型的函数都将丢失。