繁体   English   中英

如何使用MongoDB查找与自定义字段匹配的文档?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM