解析仪表板 - objectId必须是一个字符串:ObjectIdHex(" 56eac5ea1ac8242012ae4ed9")

时间:2016-03-17 15:12:53

标签: mongodb parse-platform

最近我将我的所有解析数据迁移到MongoLab。我使用calcs <- c("Vwin", "Vwout", "Vsin","Vsout","Pistd","Vwnet","Psin","Psout","Vw","Vemax","Sw","Cp","Kt","Qwout","Qtop","Qbot","Qsides","Qnet","Tavg") layers <- 5 将文档(解析对象)直接保存到mongoDb,而不使用解析SDK。

现在mongo生成自动ID,在我的情况下 - &#39; 56eac5ea1ac8242012ae4ed9&#39;,并且解析仪表板在此类中不显示任何行,直到我删除此对象(文档)并且我得到下一个错误: objectId必须是字符串:ObjectIdHex(&#34; 56eac5ea1ac8242012ae4ed9&#34;)

enter image description here

  1. 我应该以不同方式保存ID吗?
  2. 如何将我的id转换为常规的Parse对象id? (如果我需要它吗?)
  3. 任何解决方案?
  4. 我知道解析仪表板是暂时的,但现在它有帮助

1 个答案:

答案 0 :(得分:2)

这是因为默认情况下Mongo为存储在其集合中的每个对象创建一个ObjectId。要克服它,你必须命令Mongo存储你自己生成的Id。

您可以通过在Mongo中存储的对象中发送_id属性来实现。像这样:

db.collection('_ User')。save({_ id:yourid,...})

您可以生成任何随机字符串ID,但最好像Parse Server一样生成_id。如果您检查解析服务器存储库(https://github.com/ParsePlatform/parse-server/blob/master/src/cryptoUtils.js),您可以找到如何生成ID。

反正。有一些解决方案,比如www.back4app.com,已经提供了解析服务器,解析仪表板和数据库的完整托管

-

披露:我是back4app.com的创始人