[英]How can I use MongoDB to find documents that match with custom field?
我正在尝试查找与node.js中的自定义字段匹配的所有文档。
node.js代码:
req.app.db.models.Property.find({
user: {
id: req.params.id
}
}).exec(function(err, user) {
if (err) {
return next(err);
}
console.log("id:" + req.params.id);
console.log("user:" + user);
res.status(200).json(user);
});
但是,这样的控制台显示
id:5941cfc42df14b2fe811d531
user:
架构如下
user: {
id: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
name: { type: String, default: '' },
email: { type: String, defaul: ''}
},
propertyType: { type: String, default: '' },
..........
}
似乎找不到文档。 这怎么了 财产征集上有一些文件。
问题出在您的查询中,它发现一个仅具有对象ID的用户。 因此,您实际上等于“ user”和“ {{id:req.params.id}”,后者仅返回id参数。 因此,对于您的解决方案,请执行以下操作:
var query = {'user.id':req.params.id}
Property.find(query).exec(function(err, user) {
if (err) {
return next(err);
}
如果要指定返回的对象的类型(如果找到)。 您可以如下提及:
Property.find(query,'user.id user.name').exec(...)
这将返回一个仅包含用户ID和电子邮件的对象,而不包含名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.