我正在try 将数据集转换为Mongo集合.

  • 预期文件可能存在,也可能不存在.

当我运行下面的代码时,我得到一个错误:MongoError: The dollar ($) prefixed field '$push' in '$push' is not valid for storage.

我根据文件把这些放在一起:https://docs.mongodb.org/getting-started/node/update/#update-multiple-documents

版本:

var query = {
 county: aCountyName, 
 state: aStateName
}    

var params = {
 '$set': {     
  county: 'Boone',
  state: 'MO',
  '$push': {
    zips: {
      '$each': [ '65203' ]
    }
  }
 }
}

(could also be)

var params = {
 '$set': {     
  county: 'Pierce',
  state: 'WA',
  '$push': {
    zips: {
      '$each': [ '98499', '98499' ]
    }
  }
 }
}

db.collection(collectionName).updateMany(query, params, {'upsert': true},
  function(err, results) {
    callback();
  }
);

推荐答案

我不认为$push$set之内是有效的.而是try 将其作为另一个参数添加,例如:

var params = {
  '$set': {
    county: 'Pierce',
    state: 'WA'
  },
  '$push': {
    zips: {
      '$each': ['98499',
      '98499']
    }
  }
}

Mongodb相关问答推荐

基于另一子文档更改子文档的引用

如何从MongoDB集合中获取第一个和最后一个元素?

在MongoDB中,如何使用$in来匹配存储在数组变量中的值

Golang中的Mongo中值运算

无法通过管理邮箱/密码身份验证注册/登录新用户帐户(类型错误:加载失败)

MongoDB - 来自先前匹配文档的聚合匹配字段

MongoDB 按 created_at 月聚合

Mongodb,在一个查询中用正则表达式更新部分字符串

定期自动轮换 MongoDb 集合

DB.collection('comments').find() 不工作

聚合 $accumulator + $project

如何过滤查找mongodb的结果

MongoDB - 如果新值更大,则更新字段

Mongoexport 在日期范围内使用 $gt 和 $lt 约束

将MongoDB连接到前端?

Mongoose - 获取 _id 列表而不是具有 _id 的对象数组

在 Ubuntu 13.10 (saucy) 中安装 Mongodb PHP 扩展的最简单方法?

从 nodejs 到 mongodb 或 mongoose 的动态数据库连接

错误:需要数据和盐参数

MongoDB打印两点之间的距离