MongoDB - Find是一个对象中存在的数组

时间:2018-04-03 14:45:32

标签: arrays mongodb nosql

我有各种各样领域的大量不同产品。 一旦字段命名为'ar_related' 这包含0个或许多不同的数组。例如,它可以保持:

also_viewed,also_bought,buy_together,buy_after_viewing

以下是文档示例:

 getJSON(options, function (err, result) {
    if (err) {
        // handle the error
        this.emit(':tell', 'Error getting country names');
        return console.log('ERROR while trying to get country names', err);
    }

     console.log(result);
     // handle the successful result
     this.emit(':tell', 'The country name was retrieved!');
});

enter image description here

我想要实现的是返回(并计算)包含' buy_together' ar_related对象中的数组。有些产品包含它,有些则没有。

我尝试过几种不同的方法,主要使用$ elemMatch运算符,但我没有运气。从SQL背景来看,我是NoSQL的新手。

任何回复都将不胜感激。

2 个答案:

答案 0 :(得分:0)

试试这个

db.getCollection('products').find({ "ar_related": {
    $exists: true, 
    $elemMatch: { "bought_together": {$exists: true} } 
}
})

答案 1 :(得分:0)

经过一些痛苦的研究,我找到了答案。

db.P14162135_products.find({
    "ar_related.brought_together":{$exists: true}

}).count();

谢谢大家的回复