【问题标题】:Can't get array data of Mongoose/MongoDB无法获取 Mongoose/MongoDB 的数组数据
【发布时间】:2017-02-02 10:03:48
【问题描述】:
var productSchema = mongoose.Schema({
    user_id:String,
    products:[] 
});
var Products = mongoose.model('Products', productSchema);
...
...
Products.find({},function(err,docs){
   for(var i = 0; i < docs.length; i++){
       var f = docs[i].products;
       console.log(f);                          
   });

终于可以安慰了

{ _id: 8017ced8gf73kk25a8d9839x, user_id: '739265b0dlskca14d8djd1a1', __v: 0, 产品: [ {颜色:'黄色',名称:'A'}, {名称:'B',颜色:'红色'}]}

但我想要的是数组中的“黄色”!不是数组数据。 我需要访问 {} 中的数据。

var f = docs[i].products.color;

我试过了,但它出错了。

【问题讨论】:

    标签: arrays mongodb mongoose


    【解决方案1】:

    如果你想在 javascript 中使用它,你可以通过内部产品数组运行一个循环

    Products.find({},function(err,docs){
       for(var i = 0; i < docs.length; i++){
           for(var j in docs[i].products){
             if(docs[i].products[j] && docs[i].products[j].color){
                console.log(docs[i].products[j].color)
             }
           }                                
       });
    

    【讨论】:

    • 它有效,但我还有另一个问题。它安慰“黄色红色 undefined undefined hasAtomics $shift splice addToSet set indexOf undefined undefined undefined undefined”
    • 为了摆脱 undefined 你可以放一个 if 语句,但看起来你可能有损坏的数据。
    • 那个不能工作...但是“for(var j = 0; j
    • 我找到了。 while(j
    猜你喜欢
    • 2020-01-13
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2015-09-20
    • 2018-02-18
    • 2020-08-22
    相关资源
    最近更新 更多