【发布时间】:2013-03-19 03:48:35
【问题描述】:
我有以下架构:
var Child = new mongoose.Schema({
'field': String,
'value': String
});
var Parent = new mongoose.Schema({
'name': String,
'children': [ Child ]
});
我想返回 Parent 中的一个 Child 对应于以下 JSON 对象:
{ 'field': 'Family Name', 'value': 'Smith' }
我试过这个:
Parent.findOne({ 'children': { 'field': 'Family Name', 'value': 'Smith' } }, fn ...)
但它继续检索null。
编辑:
通过Mongo shell扩展测试,我发现Child子文档有自己的_id。如果我将 _id 添加到查询中,它将获取 parent 文档。现在,我提前不知道那个孩子id 会是什么。那么:如何从子文档查询中删除它? (换句话说,上面的查询从字面上寻找一个只有两个属性的 JSON 对象,而子文档有三个)
我的环境是:Node.js、Mongoose、MongoDB
【问题讨论】:
-
如果您有子对象,您可以调用
child.parent()。如果你不这样做,那么是的,你需要查询它。 -
我没有
child对象,因此是查询。但是查询本身似乎没有获取任何parent...
标签: json node.js mongodb mongoose