我有以下架构:
var Child = new mongoose.Schema({
'field': String,
'value': String
});
var Parent = new mongoose.Schema({
'name': String,
'children': [ Child ]
});
我想返回对应于以下 JSON 对象Parent
的 's 之一:Child
{ '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