我正在尝试更新mongob文档中数组中包含的单个子元素。我想使用其数组索引引用该字段(数组中的元素没有任何我可以保证将是唯一标识符的字段)。似乎这应该很容易做到,但我无法弄清楚语法。
这是我想在伪json中做的事情。
之前:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... old content B ... },
{ ... old content C ... }
]
}
之后:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... NEW content B ... },
{ ... old content C ... }
]
}
似乎查询应该是这样的:
//pseudocode
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{my_array.$.content: NEW content B }
)
但这行不通。我花了很长时间搜索mongodb文档,并尝试了这种语法的不同变体(例如,使用$slice
,等等)。我找不到任何关于如何在MongoDB中完成这种更新的明确解释。
在mongo样式中,使用“$”位置运算符。有关详细信息,请查看此链接。
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{ $set: { "my_array.$.content" : "NEW content B" } }
)
Mongo Shell中索引(例如1)引用的数组元素的更新也可以通过直接指示索引值来完成:
db.my_collection.update(
{_id : "document_id"},
{$set : {"my_array.1.content" : "New content B"}}
)
正如所料,一旦您知道如何进行,查询就很容易了。以下是python中的语法:
db["my_collection"].update(
{ "_id": ObjectId(document_id) },
{ "$set": { 'documents.'+str(doc_index)+'.content' : new_content_B}}
)
我有一个以下格式的mongodb文档。如何基于父属性_id更新数组中第一个元素的rolename字段。
此请求不使用2D数组。考虑以下结构的1D数组,其中索引从零开始,长度从一开始: 节0是单个单元格的数组。 第1节 null null null null 到目前为止,我使用一个语句的公式只能获得第一节(不是第2节或第3节)。希望找到一组公式来实现目标,而不使用语句或循环。以下是我目前掌握的信息:
问题内容: 在Python中,我们可以使用来获取数组中值的索引。 但是,当我尝试执行NumPy数组时: 我得到: AttributeError:“ numpy.ndarray”对象没有属性“ index” 我如何在NumPy数组上执行此操作? 问题答案: 使用来获得,其中一个给定的条件是指数。 例子: 对于称为的2D : 对于一维数组: 请注意,这也适用于像条件,,等等… 您也可以使用方法创建的子
我已经创建了一个的数组: 我的问题是现在如何访问其中一个数组的元素。例如,我可以通过以下方式访问(或在示例打印中)整个数组元素: 但是如何访问所拥有的数组中的第一个元素呢?我尝试了所有方法,比如,但当数组是链接列表的元素时,我不知道如何访问数组中的元素。
问题内容: 我在数组上遇到了麻烦。我有一个要修改的数组,如下所示。我想通过索引删除它的元素(元素),然后重新索引数组。可能吗? 问题答案:
问题内容: 我正在寻找在Java中找到给定元素的索引,并知道其内容的方法。 我尝试了以下示例,该示例不起作用: 谁能解释这个问题是什么以及我需要做些什么来解决它? 问题答案: 在这种情况下,你可以从字符数组中创建一个新的String,然后对该字符串执行indeoxOf(“ e”): 但是在其他原始数据类型的情况下,你必须对其进行迭代。