未加星标

Removing an element from array in mongodb

字体大小 | |
[数据库(综合) 所属分类 数据库(综合) | 发布者 店小二04 | 时间 2018 | 作者 红领巾 ] 0人收藏点击收藏

I want to remove a specific element from array stored in mongodb document. I am using this:

model.registerCompany.findOneAndUpdate({companyKey:"a key"}, {$pop:{onlineEmployees:"John"}}, function(err,doc){ if(!err) console.log("Online list modified: ",doc); else console.log("Online list modified error :",err); });

But I am not sure if the $pop removes the specific element "John" from array(onlineEmployees) or just pop out the last element from it.

Am i doing it right or there is another way to do it.?

I think i got the answer .. $pull is used for this purpose as explained here in the link: http://docs.mongodb.org/manual/reference/operator/pull/#_S_pull

Problem courtesy of: TaLha Khan

Solution

The $pop operator will remove first or last element of the array, which may not necessarily be the right one.

If you want a specific element, you can $pull the item with defined criteria:

model.registerCompany.findOneAndUpdate({companyKey:"a key"}, {$pull:{onlineEmployees:"John"}},

You have to make sure the value in the array is unique, for $pull removes every element matching the name 'John'.

If identical values exist in the array, you need to use $unset and $ positional operator to set the target element value to null (unfortunately $unset won't remove elements) and then use $pull to remove the element with null value. To do that, you have to make sure valid value can not be null . In that case, the code could be like:

model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } ) model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )

Solution courtesy of: coderLMN

本文数据库(综合)相关术语:系统安全软件

代码区博客精选文章
分页:12
转载请注明
本文标题:Removing an element from array in mongodb
本站链接:https://www.codesec.net/view/611321.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(综合) | 评论(0) | 阅读(192)