1
mongoを$ setと$ pushでどのように更新できますか?私の急行app.jsで
[ { _id: 57682f69feaf405c51fdf144,
email: '[email protected]',
username: 'testuser' },
{ username: 'sevilayha', _id: 5768d36c4c243de7422f681e, __v: 0 } ]
:
は、私は、以下のデータを持っている
// With Mongoose, everything is derived from a Schema. Let's get a reference to it and define our users.
var userSchema = mongoose.Schema({
name: String,
username: { type: String, required: true, unique: true },
password: { type: String, required: true },
admin: Boolean,
location: String,
meta: {
age: Number,
website: String
},
created_at: Date,
updated_at: Date
});
// The next step is compiling our schema into a Model.
var User = mongoose.model('User', userSchema);
app.get("/", function(req, res) {
var updateQuery = {};
User.findOne({ username: /^sevilayha/ }, function (err, user) {
if (err) return console.error(err);
updateQuery["meta"] = {
date: Date.now()
}
user.update({
$push: updateQuery,
$set: { size: 'large' },
email: '[email protected]'
});
res.status(200).json(user);
});
User.find(function (err, users) {
if (err) return console.error(err);
console.log(users);
});
が、私はまだ同じデータを取得します。更新、設定、またはプッシュされたものはありません。私が逃したアイデアは何ですか?
私は「マングース」によ:「〜4.5.1」
新しい値がdbに反映されるように、データを更新した後にuser.save()を追加する必要があります。 –
nope。その必要はありません。 save()もテストされていますが、運はありません。 – laukok
'.update'を使わず、代わりに' .save'を使ってみましたか? '' 'Model.findOne({name: 'borne'}、function(err、doc){ doc.name = 'jason ();doc.visits。$ inc(); doc.save(); }); '' 'mongooseドキュメントから取ったものですか? –