Abe*_*Abe 6 python mongoose mongodb node.js
我使用 Nodejs 服务器作为 Web 应用程序,Mongoose 充当 ORM。
我有一些钩子,当数据插入某个集合时会触发。
我希望当 python 脚本插入 mongoDB 实例时触发这些钩子。因此,如果我有一个预保存挂钩,它会根据该挂钩修改 python 脚本插入。
这可能吗?如果是这样,我该怎么做?
如果没有,请随时向我解释为什么这是不可能的和/或为什么我很愚蠢。
EDIT:
几个月后,我回想起这个问题,对自己问这个问题时的幼稚感到畏缩。我真正需要做的就是在 NodeJS 服务器上创建一个 API 端点/标志,专门用于自动化任务,例如用于发送数据的 python 脚本,并在 NodeJS 土地结构中拥有 mongoose。
这是不可能的,因为 python 和 nodejs 是两个不同的运行时 - 独立的独立进程,无法访问彼此的内存。
Mongoose 是一个 Nodejs ORM - 一个将 Javascript 对象映射到 Mongodb 文档并处理对数据库的查询的库。
所有 mongoose hooks 都属于 javascript 空间。它们在 Mongoose 向 mongo 发送任何请求之前在 javascript 对象上执行。那里有 2 个结果:没有其他进程可以搞乱这些钩子,甚至另一个 Nodejs 也不能搞乱,一旦查询到达 mongodb,它就是最终的,不再有钩子,不再有修改。
python 和 mongo 都不知道 mongoose hooks。对 mongo 的所有查询都是在客户端发起的 - 脚本发送请求以修改数据库状态或查询数据库状态。
从 mongodb 端的更新触发 javascript 代码执行的唯一方法是使用更改流
更改流不是 mongoose 挂钩,但可用于挂钩 mongo 端的更新。这是数据库的更高级的使用。它对 mongo 设置、oplog 的大小、变更流客户端的可用性、错误处理等有额外的要求。您可以在此处了解有关变更流的更多信息https://docs.mongodb.com/manual/changeStreams/ 我强烈建议建议寻求专业建议来设计此类设置,以避免沮丧和意外行为。