如何在Loopback 4中执行原始mongo查询

时间:2019-06-07 13:32:53

标签: node.js mongodb loopbackjs

我正在评估将Loopback4用于一个新项目。我研究了教程和文档,并且必须进行一些测试。其中之一与执行本机mongodb查询的功能有关。

我发现了很多与Loopback v3相关的示例,但是由于结构差异很大(与Lb4相比),因此它们并不可靠。当然,我想保持由Lb4设计的模型/存储库/数据源之间的分离,我想保留这种类型。 是否有人试图做同样的事情? 每一个帮助将不胜感激 非常感谢

1 个答案:

答案 0 :(得分:0)

恐怕LoopBack 4没有用于执行原始MongoDB查询的任何易于使用的API。我们正在column roles中讨论此功能。

在我们实现一流的支持之前,您可以直接调用MongoDB连接器的execute方法,如下所示:

const repo = // obtain the repository instance, e.g. via @inject()
const result = await new Promise((resolve, reject) => {
  repo.dataSource.connector.execute(
    'LoanRequestMappings', // collection name
    'aggregate', // command to execute
    // additional arguments
    [
      {
          $lookup:{
              // ...
          }
      },
      {   $unwind:"$data" },
      {
          $match:{
              // ...
          }
      },
      {
          $lookup:{
              // ... 
          }
      },
      {   $unwind:"$LoanRepayment" },
      { $project : { _id: 0} },
      { $out : "tempData" }
  ],
  (err, data) => {
    if (err) reject(err);
    else resolve(data);
  });
});