2017-04-22 33 views
0

我试图推动数组文件数组我的收藏是如何在内部数组mongodb中推送数据?

{ 
"_id": "58eed81af6f8e3788de703f9", 
"first_name": "abc", 
"vehicles": { 
    "exhibit": "18", 
    "title": "Motor Velicle Information for Donald French", 
    "details": [ 
     { 
      "year": "", 
      "make_model": "", 
      "registered_owner": "", 
      "license_number": "", 
      "date_of_purchase": "", 
      "purchase_price": "" 
     } 
    ] 
} 

}

,所以我想要的是在details推数据,我不得不尝试这样

Licensee.update({"_id":"58eed81af6f8e3788de703f9"},{ 
     $push:{ 
      "vehicles.details":data 
     } 
    },function(err,data){ 
     if(!err) 
     { 
      console.log('data',data); 
     } 
     else 
     { 
      console.log('err',err); 
     } 
    }); 

为此我创建一个架构,我不知道是否正确

var licSchema = new SimpleSchema({ 
"_id":{ 
    type:String, 
    label:"_id", 
    optional: false, 
}, 
"vehicles.details.year": { 
    type: String, 
    label: "year", 
    optional: true, 
}, 
"vehicles.details.make_model": { 
    type: String, 
    label: "make_model", 
    optional: true, 
} 

});

哪里是我的错请给我解决方案。 错误Uncaught Error: After filtering out keys not in the schema, your modifier is now empty

+0

请告诉我错误的信息在这里 – collision

+0

'未捕获的错误:未在该架构过滤掉键后,你的修改是现在empty' – kumbhanibhavesh

回答

1

您可以试试这个。 AddToSet应该是正确的方法。

const schema = new SimpleSchema({ 
    "vehicles.details.$.year": { 
     type: String, 
     label: "year", 
     optional: true, 
    }, 
    "vehicles.details.$.make_model": { 
     type: String, 
     label: "make_model", 
     optional: true, 
    } 
}); 

Licensee.update({"_id":"58eed81af6f8e3788de703f9"},{ 
    $addToSet:{ 
     "vehicles.details": data 
    } 
}); 
+0

同样的错误,我的事情,我错在架构。 – kumbhanibhavesh

+0

你能检查我的模式吗 – kumbhanibhavesh

+0

@kumbhaniBhavesh你是对的。检查更新的答案。 – collision