【问题标题】:Loopback js mongdb Null or Missing FieldsLoopback js mongodb Null 或缺失字段
【发布时间】:2018-10-08 11:29:48
【问题描述】:

我正在将 loopback js 用于后端 rest api。我正在从 Mysql 切换到 Mongodb。

我一直在使用这样的查询过滤器:

{filter:{where:{fieldName:null}}}

这适用于 mysql,但是当切换到 mongodb 时它不起作用。 https://docs.mongodb.com/v3.2/tutorial/query-for-null-fields/ 如文档所述支持。我是否缺少一些环回配置?

我的目标是在不更新任何查询的情况下将 mysql 更改为 mongodb。

【问题讨论】:

    标签: mysql node.js mongodb loopbackjs


    【解决方案1】:

    在 MongoDB 中查询时不需要“where”。

    你可以尝试查询这个吗?

    db.coll.find({fieldName: null})

    【讨论】:

    • Loopback 与 MongoDB 有不同的 API。查询通过它的 API 进行,并通过后端数据库的连接服务传递。这没有回答问题。
    • 确实如此。 Loopback 有不同的 api。
    【解决方案2】:

    连接器正在将您的查询转换为command=find [ { fieldName: { '$type': 10 } },

    您可以将其添加到您的数据源对象以使用扩展运算符并重新获得您的功能。

    "allowExtendedOperators": true

    { "where": { "or": [ { "name": null }, {"name": { "exists": false } } ] } }

    【讨论】:

    • 有了这个解决方案,我仍然需要更新我的 api 查询。不,我只想切换数据库而不更新查询。
    • 我同意这是一个次优的解决方案,但粗略的谷歌搜索找不到强制 mongdb : 相等运算符在 null 的情况下的方法。您还可以在 mongodb 中强制创建字段并继续使用"name": null。这可能是从关系数据库切换到文档存储的必然结果。
    • 是的,如果我理解正确的话。我可以补充。 "name": { "type": "string", "required": true, "default": null },到模型定义。默认为空
    猜你喜欢
    • 2016-05-02
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2013-05-10
    • 2019-08-23
    • 2020-10-16
    相关资源
    最近更新 更多