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 游标

GraphQL 和 MongoDB - 从 mongodb 自动插入的数据中获取“createdAt”字段

GraphQL 和 MongoDB 中的多态数据结构

如何使用 GraphQL 和 Mongodb 编写 lambda 函数?

GraphQL、Relay 和 Mongodb (mongoose) 如何获取数组

Apollo Angular 无法从 GraphQL/MongoDB 获取数据