Mongodb graphQL和Feather js数据通过_id获取在某些情况下返回null
Posted
技术标签:
【中文标题】Mongodb graphQL和Feather js数据通过_id获取在某些情况下返回null【英文标题】:Mongodb graphQL and Feather js data fetch by _id return null for some case 【发布时间】:2019-05-03 18:33:28 【问题描述】:我试图在 mongoDB 中基于 _id 获取记录,在 mongoDB 控制台中它工作正常,但是当我尝试在 GraphQL 和 Feather js 中实现相同的代码时,它返回 null,找不到记录,但是记录在数据库中。如果我将值更改为507F191M810c19729De860eA
是返回记录。它适用于一些值。这是一个非常奇怪的问题。
Locations.find(
query:
_id: "2313891acb3420defAFadefc"
).then(function(result)
console.log(result)
【问题讨论】:
【参考方案1】:请尝试通过转换为 objcectId 找到 mongoId。您将 id 作为一个简单的字符串传递。可能是你没有得到数据。
var ObjectID = require('mongodb').ObjectID;
现在您可以将字符串转换为 mongo 的 id。
Locations.find(
Query:
_id: ObjectID("2313891acb3420defAFadefc")
).then(function(result)
console.log(result)
【讨论】:
已经,我试过不工作,我以字符串格式存储值,而不是对象。很奇怪,它适用于几个 id。 我建议你永远不要将 mongoID 存储在字符串中。当您想触发聚合时,您将面临 ID 问题。 你能尝试在robo 3t或shell中找到这个id吗? 但是当我尝试使用graphQL和feather js实现时,它返回null 让我们continue this discussion in chat。以上是关于Mongodb graphQL和Feather js数据通过_id获取在某些情况下返回null的主要内容,如果未能解决你的问题,请参考以下文章
GraphQL 和 MongoDB - 从 mongodb 自动插入的数据中获取“createdAt”字段
如何使用 GraphQL 和 Mongodb 编写 lambda 函数?