如何使用Mongo ObjectId的24字节十六进制字符串在Parse Server中查询对象?

问题描述

我想设置解析服务器以连接到我之前创建的远程MongoDB。但是我注意到常规MongoDB存储objectId的方式与Parse Server不同:

  • MongoDB使用其 ObjectId "_id" : ObjectId("5ec2910bd1fd472cb144b63e")(对于我来说,集合的student是我之前创建的旧版本,它使用了MongoDB ObjectId )
  • Parse Server为它创建的类使用10字节的字符串:"_id" : "7MzrS2bIyJ"我们将集合的名称命名为Gamescore,这是我通过Parse Server创建的集合

为了通过类Gamescore从类_id获取对象,我可以执行以下操作:

  • REST:localhost:1337/parse/classes/Gamescore/7MzrS2bIyJ
  • GraphQL:
{
  gamescore(id: "7MzrS2bIyJ") {
    player_name
    score
  }
}

对于类Gamescore,一切正常,我可以照常找到对象。

但是,如果我对课程student做同样的事情:

  • REST:localhost:1337/parse/classes/student/5ec2910bd1fd472cb144b63e
  • GraphQL:
{
  student(id: "5ec2910bd1fd472cb144b63e") {
    id
    first_name
    last_name
  }
}

然后在两种情况下我都应该得到"error": "Object not found."

我知道问题是因为解析服务器将使用字符串5ec2910bd1fd472cb144b63e数据库中的_id ObjectId("5ec2910bd1fd472cb144b63e")进行比较,当然,它们并不相等。因此,我得到“找不到对象”。

我仍然想保留MongoDB的ObjectId并使用5ec2910bd1fd472cb144b63e之类的十六进制字符串通过_id获取对象。有什么好的方法可以做到这一点?

谢谢您的回答。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)