【问题标题】:Select few fields as array in mongoose express在猫鼬快递中选择几个字段作为数组
【发布时间】:2016-07-15 09:25:41
【问题描述】:

如果在我的模型架构数据集中我有...

var visitSchema = new mongoose.Schema({

    title                           : { type: String},
    client                          : { type: String},
    agenda                          : { type: String},
    agm                             : { type: String },
    anchor                          :{ type: String }
  )}

所以在这里我想要一些其他服务,它将标题、客户、议程分成一个数组和 agm、锚定到另一个数组以进行检索...
所以我尝试了这种方式...

function getExecsById(id){
    var deferred = Q.defer();
    console.log("im in getExecsById")
    var one = ('agm anchor');
    //var two =('title client agend');
    model
    .find({ _id: id })
    .select(one)
    .exec(function (err, item) {
        item = item.map(function(doc) { return doc.one; });
        if(err) {
            console.log(err);
            deferred.reject(err);
        }
        else

            deferred.resolve(item);
    });
    return deferred.promise;

} 

注意:不要更改架构...仅在服务中将数据字段分成两个数组并获取数据.....
请帮忙提前感谢

【问题讨论】:

  • separate title, client, agenda into one array是什么数据格式呢?对于[{title: 't1', client: 'c1', agenda: 'a1'}, {...}] 之类的每个文档或[title: ['t1', 't2'], client: ['c1', 'c2'], agenda: ['a1', 'a2', ...]] 之类的字段?
  • [{title: 't1', client: 'c1', 议程: 'a1'}, {...}]

标签: javascript arrays node.js mongoose


【解决方案1】:

我假设 Lodash 可用。

function getExecsById(id){
    var partition = ['agm', 'anchor'];

    return model.findOne({ _id: id })
        .then(function(item) {
            var p1 = [],
                p2 = [];

            return _.each(item, function(v, k) { 
                if (partition.indexOf(k) !== -1) {
                    p1.push(v);
                } 
                else {
                    p2.push(v);
                }
            });
        })
        .catch(function(error) {
            return error;
        });
}

【讨论】:

  • 谢谢 ....但是这里的 v 和 k 是什么???如果我填充任何字段如何获取 der 字段...
  • k是数据字段名a,v是数据字段值。
猜你喜欢
  • 2013-10-07
  • 1970-01-01
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 2020-10-17
  • 2014-10-17
  • 2011-08-28
相关资源
最近更新 更多