【问题标题】:mongoose nested document猫鼬嵌套文档
【发布时间】:2012-07-15 02:05:46
【问题描述】:

我想要的是只返回元数据中的 _id 和数据(不是我的领域,但因为猫鼬有这个主要例子):mongoose embedd documents doc

所以,我不是特别寻找任何 _id,我正在寻找 meta.votes.length > 0 或 meta.fans.length > 0 的记录。目前我这样做:

Model.find({}, ['_id','meta'], function (err, data) { callback(null, data); });

我得到没有 /data/ 的记录。我想没有找到这些集合的替代方法是过滤掉它们?

编辑:我暂时解决了我的问题:

use : { type: Boolean, default: 1 },

虽然这可能是一个功能(显示和隐藏结果 - 例如旧数据),但我不认为这是 /solution/。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    meta.votesmeta.fans 都只是 Number 对象,所以我认为您不希望 meta.fans.length 像 int 一样直接访问它们。

    这个查询应该只检索投票的 _id 和元信息 > 0

    Model.find({ "meta.votes" : { $gt : 0 } }, ['_id','meta']).exec(function(err, data) {
       callback(null, data);
    });
    

    这个查询应该只检索粉丝的 _id 和元信息 > 0

    Model.find({ "meta.fans" : { $gt : 0 } }, ['_id','meta']).exec(function(err, data) {
       callback(null, data);
    });
    

    您可以像这样将两个查询放在一起:

    Model.find({ $or : [ { "meta.votes" : { $gt : 0 } },
                         { "meta.fans" : { $gt : 0 } } ] }, ['_id','meta']).exec(function(err, data) {
       callback(null, data);
    });
    

    您应该会看到如下返回:{ _id: 5001b3ce7cf4b534a3000002, meta: { votes: 1, fans: 1 } }

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 2020-08-18
      • 2018-10-13
      • 1970-01-01
      • 2015-01-06
      • 2016-06-05
      • 2015-10-11
      • 1970-01-01
      相关资源
      最近更新 更多