MongooseJS – 如何推正确的格式?
我想以这种格式创build数据:
{ "weather": { "dailysummary": [...], "created_on": "2016-10-27 11:11:11", "addedOnLastHour": false } }
但为什么moongoose总是给我这种格式:
{ "weather": [ { "dailysummary": [...], "created_on": "2016-10-27 11:11:11", "addedOnLastHour": false } ] }
我的代码:
var updateQuery = {}; var weather = {}; weather.dailysummary = []; weather.created_on = '2016-10-27 11:11:11'; weather.addedOnLastHour = false; // Insert date data. updateQuery["weather"] = weather; stream.update({ $push: updateQuery }, function(err, streamID) { if (err) { // handle error } // success });
我做错了什么? 有任何想法吗?
我的模特:
var mongoose = require("mongoose"); var mongoosePaginate = require('mongoose-paginate'); // Declare schema var streamSchema = new mongoose.Schema({ title: { type: String, required: true }, weather: { type: Object }, }); streamSchema.plugin(mongoosePaginate); // Export schema // Model.paginate() mongoose.model("Stream", streamSchema);
您可以使用$ set操作符而不是$ push
尝试这个:
stream.update({ $set: updateQuery }, function(err, streamID) { if (err) { // handle error } // success });
推$似乎是问题的制造者。 它用于将对象推送到数组数据types属性。 因此,你正在得到一个arrays的天气。 以下是mongoose更新的示例代码片段。
Contact.update({_id: contact.id}, weatherObject, {}, function() {});
这里:
联系 – >型号
Where子句 – > {_id:contact.id}
weatherObject – >更新数据