通过与猫鼬中的不同数组匹配,从嵌入数组中删除元素
Removing elements from embedded array by matching with different array in mongoose
我在Mongodb中嵌入了一个tweet数组,每条tweet都有一个tweetID(不要与Mongodb分配的id混淆)。
{
"_id": {
"$oid": "54d95cb062917897ad26c5e5"
},
"name": "foo",
"tweets": [
{
"tweetID": "1234",
"text": "bla bla bla"
},
{
"tweetID": "4321",
"text": "bla bla bla",
}
... and so on
现在在我的应用程序中,我有另一个数组,里面满是应该删除的tweetID。
var tweetsToBeDeleted = [ "1234", "4321" ];
我正试图让猫鼬这样做:
ChannelsModel.update( { },
{ $pull: { tweets: { $elemMatch: { tweetID: tweetsToBeDeleted } } } },
{ multi: true },
function ( err ) {
console.log( "err - " + err );
}
);
但当我尝试运行此程序时,没有任何内容被删除。将执行错误回调,但err
是null
。
有什么想法吗?
提前感谢!
将字段与多个值匹配时使用$in
:
var tweetsToBeDeleted = [ "1234", "4321" ];
ChannelsModel.update( { },
{ $pull: { tweets: { tweetID: { $in: tweetsToBeDeleted } } } },
{ multi: true },
function ( err ) {
console.log( "err - " + err );
}
);
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- JavaScript Unshift EACH 数组元素
- 如何在加号运算符之后选择数组元素的一部分
- 访问标记图标的图像数组元素
- JavaScript 合并相同的数组元素
- 删除仅空格数组元素
- JavaScript闭包和返回数组元素