0

由于环回连接器,我在将 mongoDB Atlas 集群从 4.2 迁移到 4.4 时遇到问题。

引入了 MongoDB 4.4 路径冲突限制 ( https://docs.mongodb.com/manual/release-notes/4.4-compatibility/#path-collision-restrictions ),因此某些查询无法使用 loopback-connector了。

我正在使用 loopback-connector-mongo 连接到 MongoDB 4.2 atlas 集群的 loopback3 上运行 nodejs 应用程序。

软件包版本:

"loopback": "3.28.0", 
"loopback-connector-mongodb": "5.5.0"

将 dataModel 视为具有以下内容的对象:

data : {
     id: 1,
     total: {
        day: [1,2,3],
        month: [4,5,6],
        year: [7,8,9]
     }
}

以下查询将导致路径冲突错误:

data = await this.dataModel.findById({ id: this.Id, filter: { fields: ['total', 'total.month'] } });

如果您更新语法以遵循 MongoDB 4.4 要求,则查询将返回一个空对象:

data = await this.dataModel.findById({ id: Id, filter: { fields: ['total.month'] } });

我希望数据是这样的对象:

data = {total.month : [4,5,6]}

但它只是一个空对象:

data = {}

我知道该查询有效,因为如果我不使用连接器直接访问 MongoDB,则响应是正确的。

我究竟做错了什么?

4

0 回答 0