我不是Meteor的新手,但因为从事其他项目而离开了几个星期。
我现在正在使用React处理Meteor项目。
当我这样做Collection.find({}).fetch()
时,它会返回:
[
{
"_id": { "_str": "59d3b91d80f4f5eeb0162634" },
"title": "My first Post",
"content": "This is the body of the pst"
}
]
唯一奇怪的是_id
字段。
但是,当我Collection.findOne({_id: "59d3b91d80f4f5eeb0162634" })
时,它会返回undefined
。
如何使用.findOne()
字符串作为查询参数来执行_id
?
答案 0 :(得分:2)
您所看到的内容_id
的值不是JSON对象,而是Mongo ObjectID
类型的字符串表示形式,这就是为什么您的.findOne()
无法找到它。
您应该像这样搜索:
const _id = new Meteor.Collection.ObjectID('59d3b91d80f4f5eeb0162634');
Collection.findOne({ _id }); // same as { _id: _id }
默认情况下,Meteor uses STRING
method of _id
generation,所以似乎这个特定文档已经以另一种方式插入到集合中。