Tag: mongodb update

将Update with Upsert设置为true时未设置默认值

我有以下模型的用户: var UserSchema = new mongoose.Schema({ name: String, dob: Date, sex: String, photo: String, email: {type: String, index: {unique: true, required: true}}, created: {type: Date, default: Date.now} }); var User = mongoose.model('Users', UserSchema); 正如你所看到的“创build”字段取当前date的默认值,以便在创build新用户时自动设置。 在发布用户详细信息时使用以下查询: User.findOneAndUpdate({email: user.email}, user, {upsert: true}, function (err, user) { if (err) { return callback (err); } else { callback(null, user); […]

node.js mongodb只更新第一个在数组中find的子文档

一个用户集合: { "_id" : ObjectId("5785d10570d6c39923d476cf"), "name" : "BB Cafe", "transaction" : [ { "id" : "m69bkn", "type" : "TYPE1", "amount" : 0, }, { "id" : "nhaa94", "type" : "TYPE1", "amount" : 0, } ] } 更新声明 var mongodbObjectID = require('mongodb').ObjectID; db.collection('user').update( {_id:new mongodb.ObjectID("5785d10570d6c39923d476cf"), "transaction.amount":0, "transaction.type":"TYPE1", "transaction.id":"nhaa94" }, {$set:{"transaction.$.amount":0.6}}, {w:1}, function(err, resultUpdate) { } 它更新为transaction.id […]

MongoDb中的条件更新

有没有更好的方式做这种条件更新只有一个数据库调用,即只使用user.update ? user.findOne({ fbPsid: sender }, 'referal', function (err, res) { if (res.referal.length < 5 ) { user.update( { fbPsid: sender }, { $set: { status: { state: -11 } }, $push: { "referal": { name: '', phonenumber: '', email: '' } } }, function (err, res){} ); } else { sendTextMessage(sender, "You have already […]