gpt4 book ai didi

mongodb - 使用 FindWhere 子句时环回 MongoDB 字符串属性转换为 ObjectId

转载 作者:行者123 更新时间:2023-12-02 00:51:55 24 4
gpt4 key购买 nike

我有一个具有许多属性的模型。其中之一是名为“developerId”的字段,其中包含一个与 MongoDB ObjectId 具有相同长度和特征的字符串(它实际上是一个字符串化的 ObjectId)。

当我使用 Node.js 中的 find() 方法查询模型时,查询会在执行之前更新,并且“developerId”值会转换为 ObjectId,然后该对象无法匹配数据库中的任何字符串,因为它们是字符串,而不是 ObjectId。

{where: {developerId: '55118c5fc921fa170f05080b'}}

转换为:

{where: {developerId: ObjectId('55118c5fc921fa170f05080b')}}

该字段不是 id 字段,在模型 json 定义中指定为类型:'string'。

如何关闭这种自动对象 ID 行为,以便控制 Loopback 的查询?

最佳答案

看起来您已经发现了框架的错误/缺点。请参阅此处:

https://github.com/strongloop/loopback-connector-mongodb/issues/52

截至两个月前,该错误似乎仍未解决。欢迎来到可以进行节点开发的狂野西部。

您可以在短期内 fork 和破解该模块,同时与社区合作解决此问题。

您还可以尝试使用底层 mongo 连接进行查询,然后将其映射回环回对象。你可以像这样得到:

app.models.User.dataSource.connector

我想您始终可以将模型的developerId字段更改为实际的ObjectId。

关于mongodb - 使用 FindWhere 子句时环回 MongoDB 字符串属性转换为 ObjectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31220170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com