繁体   English   中英

搜索数组 MongoDB NodeJS

[英]Search array MongoDB NodeJS

我正在努力获取名称与我存储的另一个数据库的名称相匹配的记录。 我可以检索所有数据字段,但我正在努力获取特定记录,即名称 = jack 或 jill。 我想使用我从护照日志中获取的变量,我可以在 req.user.username 中访问该变量。

我尝试使用 findOne 并在没有任何运气的情况下操作 ejs 数组。 它打印到控制台,但我无法在 vieworders.ejs 上显示我认为我过于复杂了,在 applicationDB.name = req.user.username 处查找和显示记录的最佳方法是什么?

server.js 是

app.get('/vieworders', require('connect-ensure-login').ensureLoggedIn(), function(req, res) {
          Myapplication.find(function(err, myorders) {
          res.render('vieworders', { user: req.user, myorders: myorders});
          console.log(myorders);
      });
});

vieworders.ejs 是

<h1> Display Orders Here </h1>
<% if(myorders.length>0) { %>
<table border="1">
        <tr>
                <th>Index</th>
                <th>Name</th>
                <th>size</th>

        </tr>
         <% for(var i=0; i<hurleys.length;i++) { %>
                <tr>
                  <td><%= i %></td>
                  <td><%= myorders[i].name %></td>
                  <td><%= myorders[i].orderssize %></td>
                </tr>
                   <% } %>

</table>
<% } else { %>
        No Record Found
      <% } %>

我的应用程序架构是

const mySchema= new Schema({
  name: {
    type: String,
    required: true,
  },
  ordersize: {
    type: String,
    required: true,
  },
});

module.exports = mongoose.model('MyApplication', mySchema);

您必须将查询过滤器作为find方法的第一个参数传递。

这应该可以解决问题,假设用户名作为name存储在架构中。

app.get('/vieworders', require('connect-ensure-login').ensureLoggedIn(), function(req, res) {
          Myapplication.find({name: req.user.username}, function(err, myorders) {
          res.render('vieworders', { user: req.user, myorders: myorders});
          console.log(myorders);
      });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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