mongodb 更新数组出现can't append to array using string field name

数据库内容大概如下:

{
_id:1,
"hero_list" : {
             "15521" : {
                        "stars" : 0,
                        "_id" : 15521,
                        "equip" : [
                                [ ],
                                [ ],
                                [ ],
                                {
                                        "item_id" : 310141,
                                        "lv" : 103,
                                        "uuid" : "4a727ee1-e7b0-4265-b004-e2b75890378a",
                                        "amount" : 1
                                },
                                [ ],
                                [ ]
                        ],
                        "lv" : 15,
                        "exp" : 0,
                        "quality" : 0
                }
            }
}

> db.hero.update({_id:1},{$set:{"hero_list.15521.equip.4.lv":1}})
can‘t append to array using string field name [lv]

看了半天,原来是自己眼花,数组下标数错了

db.hero.update({_id:1},{$set:{"hero_list.15521.equip.3.lv":1}})

OK

mongodb 更新数组出现can't append to array using string field name

时间: 2024-09-30 03:34:37

mongodb 更新数组出现can't append to array using string field name的相关文章

MongoDB中数组类型相关的操作

概述 在MongoDB的模式中,我们经常将一些数据存储到数组类型中,即我们常见的嵌套模式设计的一种实现方式.数组的这种设计实现方式在关系数据库中是没有或者说不常见的.所以,通过本文我们来梳理一下MongoDB的数组的相关操作.关于数组的操作可以分成两类,一类是数组操作符,另一个是数组运算修饰符.  数组操作符 操作符 实现功能 $ 根据查询选择器定位要更新的文档 $push 添加值到数组中 $pushAll 添加数组到一个数组中.(将被$rach取代) $addToSet 添加值到数组中,重复了

MongoDB更新操作

MongoDB的更新操作涉及到4个参数: db.collection.update(criteria,objNew,upsert,multi) criteria:查询条件 objNew:update对象和一些更新操作符 upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入. multi:默认是false,只更新找到的第一条记录.如果为true,把按条件查询出来的记录全部更新. 修改字段名称 db.CollectionName.up

mongodb更新数据

1. 获取当前时间: Calendar.getInstance().getTime(); 2. 更新数据: public void updateProcessLandLog(ProcessLandLog land, List<String> fields,List<Object> values) { Update update = new Update(); int size = fields.size(); for(int i = 0 ; i < size; i++){ S

将函数的实际参数转换成数组的方法,习惯用Array.prototype.slice.call(arguments)

实际参数在函数中我们可以使用 arguments 对象获得 (注:形参可通过 arguments.callee 获得),虽然 arguments 对象与数组形似,但仍不是真正意义上的数组. 我们可以通过数组的 slice 方法将 arguments 对象转换成真正的数组. 方法一:通过Array.prototype属性调用slice方法 var args = Array.prototype.slice.call(arguments); Array 本身是没有 slice 方法,它的方法在 Arr

JavaScript定义数组的三种方式(new Array(),new Array(&#39;x&#39;,&#39;y&#39;),[&#39;x&#39;,&#39;y&#39;])

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

mongodb 批量更新 数组的键操作的文件

persons该文件的数据如下面的: > db.persons.find() { "_id" : 2, "name" : 2 } { "_id" : 3, "name" : 3 } > db.persons.update({_id:4},{_id:4,name:4}) WriteResult({ "nMatched" : 0, "nUpserted" : 0, "n

[MongoDB]对数组操作

摘要 在实际开发中遇到更新某个document中的数组的值,这里做一下记录. 这里使用的驱动为 using MongoDB.Bson;using MongoDB.Driver; 相关文章 [MongoDB]入门操作 [MongoDB]增删改查 [MongoDB]count,gourp,distinct [MongoDB]mapReduce [MongoDB]Profiling性能分析 [MongoDB]索引 Mongodb c#增删改查 mongodb培训 demo using MongoDB.

MongoDB 更新文档

MongoDB 使用 update() 和 save() 方法来更新集合中的文档.接下来让我们详细来看下两个函数的应用及其区别. update() 方法 update() 方法用于更新已存在的文档.语法格式如下: db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } ) 参数说明: que

集算器计算MongoDB之数组查下标

Mongodb可以按照下标查出内嵌数组的元素,但是不能通过元素的值来查询下标.例如:数组中的元素是按照排名的先后顺序存放的人员姓名,mongodb可以根据排名(数组下标)来找姓名,但是不能通过姓名查找排名(数组下标)数值.esProc可以协助mongodb实现这个需求,下面通过例子来 v.17173.com/playlist_17425386.htmlv.17173.com/playlist_17425393.htmlv.17173.com/playlist_17425400.htmlv.171