Mongoose通过数据字段从模式查找到服务

时间:2016-03-02 17:33:51

标签: mongodb mean-stack

如果我的mongoose中有架构

'use strict';

var mongoose = require('mongoose'),
    Schema   = mongoose.Schema;

var lovSchema = new mongoose.Schema({
    name    : { type: String },
    values  : [{ type: String }]
});

module.exports = mongoose.model('lovs', lovSchema);

通常在mongoose中,我们使用reff查找文档,从_id收集文件。

function getOneById(id){
    var deferred = Q.defer();

    model.findOne({ _id: id })
         .exec(function (err, item) {
            if(err) {
                console.log(err);
                deferred.reject(err);
            }
            else
                console.log(item);
                deferred.resolve(item);
          });

    return deferred.promise;
} // gentOneById method ends

但我想找到文档按名称,这是我的架构中的数据字段。
我尝试修改_id { {1}}但以此错误结束......

name

1 个答案:

答案 0 :(得分:0)

只需使用带有String值的名称:

function getOneByName(name){
    var deferred = Q.defer();

    model.findOne({ name: name})
    .exec(function (err, item) {
        if(err) {
            console.log(err);
            deferred.reject(err);
        }
        else
            console.log(item);
            deferred.resolve(item);
      });

    return deferred.promise;
} // gentOneById method ends

你可以这样测试:

model.findOne({ name: "Bob"})

看看你是否还有错误......