mongo 中 _id 值的差异,以及如何处理它们(angular 2 流星教程)

Difference in _id values in mongo, and how to handle them (angular 2 meteor tutorial)

我正在 https://angular-meteor.com/tutorials/socially/angular2/routing-and-multiple-views 学习教程,发现我的某些路线链接无效。

最初我认为这是解决方案 (),将它们转换为字符串,但也没有用。我深入挖掘并意识到这一点:路由链接适用于通过应用程序插入的数据,但不适用于通过控制台插入的数据,因为它们有 _id 字段,其中包含 ObjectId

{ "_id" : ObjectId("5859f7d5a8aeb662e0e3eff9"), "name" : "A new party", 
  "description" : "From the mongo console!", "location" : "In the DB" }

{ "_id" : "67dswyFrT3Bt3kHED", "name" : "inserted works", 
  "description" : "inserted works", "location" : "inserted works" }

如何处理这两种 _id 数据?

两者不同的原因有解释:Meteor.Collection.ObjectID() vs MongoDB ObjectId()

基本上 Meteor 可以使用 Mongo ObjectId,但它使用更简单的字符串,因为它更容易将 _id 字段放入 URL 等

通常只有您的应用会修改数据,所以这应该不是问题。