angularjs – 如何更新mongodb中的数组元素
发布时间:2020-12-17 17:17:06 所属栏目:安全 来源:网络整理
导读:我在mongoDB中有数据,如下所示 { "_id": ObjectId("57c40e405e62b1f02c445ccc"),"sharedPersonId": ObjectId("570dec75cf30bf4c09679deb"),"notificationDetails": [ { "userId": "57443657ee5b5ccc30c4e6f8","userName": "Kevin","isRed": true } ] } 现在
我在mongoDB中有数据,如下所示
{ "_id": ObjectId("57c40e405e62b1f02c445ccc"),"sharedPersonId": ObjectId("570dec75cf30bf4c09679deb"),"notificationDetails": [ { "userId": "57443657ee5b5ccc30c4e6f8","userName": "Kevin","isRed": true } ] } 现在我想将isRed值更新为false如何为此编写查询.我尝试过类似下面的内容 var updateIsRedField = function(db,callback) { db.collection('notifications').update({_id:notificationId},{ $set: { "notificationDetails.$": {isRed: false}},},function(err,results) { callback(); }); }; MongoClient.connect(config.database,db) { assert.equal(null,err); updateIsRedField(db,function() { db.close(); }); return res.json({}); }); 解决方法
由于位置
$ 运算符充当与查询文档匹配的第一个元素的占位符,并且数组字段必须作为查询文档的一部分出现,因此查询{“notificationDetails.isRed”:true}对于获取
$ 运算符至关重要工作正常:
db.collection('notifications').update( { "_id": notificationId,"notificationDetails.isRed": true },{ "$set": { "notificationDetails.$.isRed": false } },results) { callback(); } ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |