mongodb 数据对象内又是数组对象 查找怎么查
展开全部
不幸的是你要求的这个更新或查询暂时无法实现, 但可能会在将来发布的 mongoDB 3.1 版本中实现, 见 issue: https://jira.mongodb.org/browse/SERVER-831
但幸运的是如果你想更改 Object4 的 text 或者其他 field 的值, 是可以的, 用 $ 操作符可以实现, 例如:
db.collectionName.update(
{ id: Objectid1, 'children.id': Object4 },
{ $set: { 'children.$.text': 'This is Object4' } }
)
在查询部分, 你可以直接使用 ArrayName.fieldName 对数组进行查找。 而在更新部分, $占位符代表你查询部分找到的数组元素, 进而children.$.text就是Object4的text值。更多内容请参阅 mongodb手册
建议:如果你是在需要对多重数组中的元素进行更新,请在 app 中得到祖父文件, 用编程语言更改数组元素, 再将祖父文件更新回数据库。
但幸运的是如果你想更改 Object4 的 text 或者其他 field 的值, 是可以的, 用 $ 操作符可以实现, 例如:
db.collectionName.update(
{ id: Objectid1, 'children.id': Object4 },
{ $set: { 'children.$.text': 'This is Object4' } }
)
在查询部分, 你可以直接使用 ArrayName.fieldName 对数组进行查找。 而在更新部分, $占位符代表你查询部分找到的数组元素, 进而children.$.text就是Object4的text值。更多内容请参阅 mongodb手册
建议:如果你是在需要对多重数组中的元素进行更新,请在 app 中得到祖父文件, 用编程语言更改数组元素, 再将祖父文件更新回数据库。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询