Mean.js angularjs 查询 mongodb 数据库

Mean.js angularjs querying the mongodb database

我知道这是一个愚蠢的问题,但我遗漏了一些东西,我迷路了。

我使用 'yo meanjs' 创建了一个新项目,从而创建了标准脚手架。

从应用程序的 public 端,我试图在用户中搜索用户,而不是根据他们的 ID 而是他们的电子邮件地址。

有些我需要如何使用 Users.get 或 Users.query 编写查询,但我找不到如何执行此操作的示例。我必须在应用端创建新的 controllers/routes 吗?

在 public 方面,我尝试了很多不同的方法,例如:

var user = Users.query({
    email: 'bob@this.com'
});

我现在似乎无法透过美丽的树木看到森林。

谢谢!

您可以使用 findOne()。

User.findOne({email: req.body.email}, function(err, user){
   //...
   callback(err);
}); 

我想答案有点复杂。这是可行的,尽管可能有更好的方法。

我必须在其中一个应用程序用户控制器中创建一个新函数:

exports.userByEmail = function(req, res, next, email) {
  console.log('userByEmail ' + email);
  User.findOne({
    email: email
  }).exec(function(err, user) {
    if (err) return next(err);
    if (!user) return next(new Error('Failed to load User with email ' + email));
    res.json(user);
    next();
  });
};

接下来,我必须创建一条新路线:

app.route('/users/email/:emailAddr').get(users.me);
app.param('emailAddr', users.userByEmail);

然后我用 $htttp.get 调用它:

$http.get('/users/email/' + newEmail).
    success(function(data, status, headers, config) {
        // do something useful with data
    }).
    error(function(data, status, headers, config) {
      $scope.error = 'Problem finding a user with that email';
    });

问题源于我无法使用现有的 CRUD 调用之一发送查询 json 对象。