微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用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 举报,一经查实,本站将立刻删除。