我怎么能删除2级深嵌套数组中的一些项目

时间:2015-06-05 03:20:48

标签: mongodb

我希望远程项目只包含空格" "

但我的查询不起作用,任何建议

查询

  db[source_collection].update({
    '_id': customer._id
  }, {
    '$pull': {
      "records.0.items": {
        $regex: /^\s*$/
      }
    }
  });

文档

    {
        "_id" : "025daee4b9b9ba36ed244bb594313ff9",
        "records" : [
            {
                "items" : [
                    "7089 "
                ]
            },
            {

                "items" : [
                    "     ",
                    "78059"
                ]
            },
            {

                "items" : [
                    "     ",
                    "5645 "
                ]
            }
        ]
    }

1 个答案:

答案 0 :(得分:0)

db[source_collection].find({"_id":customer._id}).forEach(function(doc){
var arr = doc.records.items;
for(var i; i<arr.length;i++)
 {
  if(!arr[i].replace(/\s/g, '').length)
  arr.splice(i,1);
 }
 doc.records.items = arr;
 db[source_collection].save(doc);
}