我不知道如何在mongodb文档中按数组中的最后一个元素匹配文档。假设我要用新数据更新特定文档,如果数组最后一个元素中的字段不等于某个特定值。我知道我可以这样做来检查Array中的字段是否已经不包含该值:
myTable.update({ Thing: thisThing,
'myArray.Element': {$ne: parseInt(thisValue)} }, ...)
假设我们要将所有姓氏与“ Oscar”(在本例中为John)不同的用户的“ user”字段更改为“ Updated”。该查询:
db.getCollection('names').update({$where: "this.list_friends[this.list_friends.length - 1] !== 'Oscar'"}, {"$set": {"user": "Updated"}})
修改集合,最终结果是:
/* 1 */
{
"_id" : ObjectId("58de74f8c1bb7f4256adf32c"),
"user" : "Updated",
"list_friends" : [
"Alice",
"Bob"
]
}
/* 2 */
{
"_id" : ObjectId("58de75d3c1bb7f4256adf32d"),
"user" : "Pop",
"list_friends" : [
"Eve",
"Oscar"
]
}
我使用Mongo 3.2测试了该解决方案,但不确定该解决方案是否适用于旧版本。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。