我希望能够使用其id访问子文档,而不必知道父ID的id。我有以下mongoose架构:
var subdocumentSchema = mongoose.Schema({
data: String
})
var userSchema = mongoose.Schema({
firstname : String,
lastname : String,
subdocument: [subdoumentSchema]
})
我用它来创建以下对象:
{
"_id":"5a36c5d211e4892747300363",
"firstname": "Person",
"lastname":"Personson",
"subdocument":
[{
"_id":"5a5ccd4905a74e65945b6a0a",
"data" : ...
}]
}
在mongo控制台中,我可以使用带有以下查询的子文档ID找到该文档:db.users.find({"subdocument._id": ObjectId("5a5ccd4905a74e65945b6a0a")})
然而,我和猫鼬无法相提并论。 User.findById({'contactRequests._id': '5a5ccd4905a74e65945b6a0a'})
只会产生 Cast to ObjectId因值 -error而失败。
我做错了什么?
答案 0 :(得分:0)
问题是使用findById
而不是findOne
。通过使用findById
,{'contactRequests._id': '5a5ccd4905a74e65945b6a0a'}
被解析为ID本身,这不是我想要的。