是否可以在Loopback 4应用程序中使用高级MongoDB运算符,例如数组更新运算符?
来自 LoopBack 团队👋的你好
我们还没有对执行自定义MongoDB运算符的一流支持。
我看到两种可能的解决方案:
-
将此类更新命令作为自定义命令执行。不幸的是,这并不像我希望的那样简单,请参阅 GitHub 问题 loopback-next#3342 了解更多详情。当前的解决方法是调用连接器的
execute
方法,并手动将其从回调样式转换为异步/承诺样式。基于 https://github.com/strongloop/loopback-next/issues/2807#issuecomment-487590905 的示例代码:
const repo = // obtain the repository instance, e.g. via @inject() const result = await new Promise((resolve, reject) => { repo.dataSource.connector.execute('MyCollection', 'update', { $push: { tags: ['new tag'] } ], (err, data) => { if (err) reject(err); else resolve(data); }); });
-
增强 LoopBack 的
Repository
实现,以允许 MongoDB 更新补丁数据中的运算符。LoopBack 3 已经支持此功能,但我们尚未在 LoopBack 4 中公开它。你能打开一个新的 GitHub 问题吗?