在mongodb中使用现有字段作为objectId来创建带有节点和表达的REST api?

Posted

技术标签:

【中文标题】在mongodb中使用现有字段作为objectId来创建带有节点和表达的REST api?【英文标题】:Using existing fields as objectId in mongodb to create REST api with node and express? 【发布时间】:2016-08-11 02:01:42 【问题描述】:

我的 JSON 文件是:

 [
   'name': name,
    'birthday': birthday,
    'telephone': telephone,
    'details': details,
   ....
 ]

我的应用程序将能够接受namebirthdaytelephone 值,这三个值的组合对于每个实体都是唯一的。我希望根据这三个值检索一个实体,比如http://localhost:8000/name?=mary&birthday?=19880902&telephone?=2234324567 将返回 Mary 的 json 对象。

我正在查看有关使用 mongodb 和 nodejs 的示例,其中大多数建议使用 new BSON.ObjectID(id) 创建一个全新的 _id 字段并执行类似于 app.get('/users/:id', users.findById) 的操作来查找 id。是否可以不创建单独的 id 字段?

【问题讨论】:

【参考方案1】:

尝试使用带有(req, res) 参数的回调。见here:

app.get('/', function(req, res) 
  var findCursor = Users.find( 
    "name": req.query.name, 
    "birthday": req.query.birthday,  
    "telephone": req.query.telephone 
  );
  cursor.each(function(err, doc) 
    if (err) console.log("Oh no!");
    if (doc != null) 
      // Do stuff
      res.send('GET request to user page?');
    
   
);

【讨论】:

以上是关于在mongodb中使用现有字段作为objectId来创建带有节点和表达的REST api?的主要内容,如果未能解决你的问题,请参考以下文章

PDI Kettle - 如何在 MongoDB 输出中为查询匹配指定 ObjectId

根据插入 PATCH 请求链接的 ObjectID 在 VueJS 中编辑 MongoDB 的产品字段

Node.js 使用 MongoDB 的 ObjectId 作为查询条件

MongoDB 查询聚合 localField ObjectId 字符串和外部字段 ObjectId

Mongodb:通过“_id”字段搜索嵌入文档

如何在 Mongoose 中使用 $addToSet 和 ObjectId 数组?