为啥我不能将 PriorityQueue 存储到 MongoDB 中
Posted
技术标签:
【中文标题】为啥我不能将 PriorityQueue 存储到 MongoDB 中【英文标题】:Why can't I store a PriorityQueue into MongoDB为什么我不能将 PriorityQueue 存储到 MongoDB 中 【发布时间】:2020-10-27 19:38:15 【问题描述】:最近我决定用优先队列替换数组,以便将我的用户作业列表存储到 MongoDB 中。我使用 NodeJS 和 ExpressJS 作为后端。我尝试存储的优先级队列来自一个外部包,可以通过在终端中运行以下命令来安装:
yarn add js-priority-queue
由于某种原因,优先级队列在将其存储到 MongoDB 之前可以完美运行。但是,下次我尝试将它从 MongoDB 中取出并使用它时,它的功能就丢失了。我在 Schema 中将其类型声明为 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""
所以任何类型的功能都会丢失。
【讨论】:
以上是关于为啥我不能将 PriorityQueue 存储到 MongoDB 中的主要内容,如果未能解决你的问题,请参考以下文章
为啥 PriorityQueue 的 toString 会乱序返回元素?
Rbx.Lua - 为啥我不能将 .txt 文件存储为表格?