当前位置: 首页 > 知识库问答 >
问题:

$[](位置运算符)不在猫鼬中工作

杨曜瑞
2023-03-14

$[](loctional-all)更新运算符已在mongob版本3.6中添加。

我想将某个特定用户的allTasks数组的所有元素更新为paid:0paid:1

我使用的查询是:

User.update({
        _id: userId,
        "allTasks.paid":0
    },{
        $set : {
            "allTasks.$[].paid":1
        }
    })

用户模式

var UserSchema = mongoose.Schema({
    allTasks: [{
        paid: Number // 0: unpaid, 1: paid
        //other fields
    }],
    //other fields
});

上面给出的查询不起作用,有人能告诉我,如果我遗漏了什么,或者做错了什么吗?

共有1个答案

郭单鹗
2023-03-14

对于面临相同问题的任何其他人:

问题是Mongodb

  • MongoDB版本应为3.6

此外,您可能需要使用setFeatureCompatibilityVersion:3.6

从这个答案:

当mongodb从较低版本切换到较高版本时,您必须为您的mongodb设置setFeatureCompatibilityVersion

启用或禁用保留与早期版本MongoDB不兼容的数据的功能。您只能针对管理数据库发出setFeatureCompatibilityVersion。

您只需在MongoShell中运行此命令即可进行设置

db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
 类似资料:
  • 问题内容: 我正在尝试了解轮班经营者,但收获不多。当我尝试执行以下代码时 我得到以下 有人可以解释一下吗? 问题答案: 将二进制2()向左移动11次。因此:1000000000000 将二进制2()向左移动22次。因此: 现在,int为4字节,因此为32位。因此,当你偏移33时,它等效于偏移1。因此:100

  • 主要内容:位或运算符 |,位与运算符 &,位异或运算符 ^,位左移运算符 << ,位右移运算符 >>,位取反运算符 ~ 所谓位运算,就是按照内存中的比特位(Bit)进行操作,这是计算机能够支持的最小单位的运算。程序中所有的数据在内存中都是以二进制形式存储的,位运算就是对这些二进制数据进行操作。 位运算一般用于操作整数,对整数进行位运算才有实际的意义。整数在内存中是以补码形式存储的,正数的补码形式和原码形式相同,而负数的补码形式和它的原码形式是不一样的,这一点大家要特别注意;这意味着,对负数进行位

  • 主要内容:& 按位与运算符,| 按位或运算符,^按位异或运算符,~按位取反运算符,<<左移运算符,>>右移运算符Python 位运算按照数据在内存中的二进制位(Bit)进行操作,它一般用于底层开发(算法设计、驱动、图像处理、单片机等),在应用层开发(Web 开发、Linux 运维等)中并不常见。想加快学习进度,或者不关注底层开发的读者可以先跳过本节,以后需要的话再来学习。 Python 位运算符只能用来操作整数类型,它按照整数在内存中的二进制形式进行计算。Python 支持的位运算符如表 1 所

  • 主要内容:位逻辑运算符,位移运算符,复合位赋值运算符Java 定义的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括 long,int,short,char 和 byte。 位运算符主要用来对操作数二进制的位进行运算。按位运算表示按每个二进制位(bit)进行计算,其操作数和运算结果都是整型值。 Java 语言中的位运算符分为位逻辑运算符和位移运算符两类,下面详细介绍每类包含的运算符。 位逻辑运算符 位逻辑运算

  • 问题内容: 我正在研究猫鼬在mongodb中的数据库中列出一个集合中的所有数据: 根据要求: 我正在执行以下代码: 我已经在数据库中输入了条目,但是上面的代码返回了空值。为什么? 编辑:以下代码也返回空: 使用的架构: 问题答案: 您的问题是猫鼬将集合复数。猫鼬正在查询“组织”,但您的数据在mongodb中为“组织”。使它们匹配,您应该很好。您可以通过mongoshell在mongodb中对其重命

  • 问题内容: 我正在使用mongoose(在节点上),并且尝试通过使用Mongoose中间件在保存时向模型添加一些其他字段。 我正在考虑要添加lastmodifiedsince-date的常用情况。但是,我也想自动添加完成保存的用户的名称/配置文件链接。 我使用的护照- http://passportjs.org/这导致req.user存在, - 当然是在HTTP请求的。 谢谢 编辑 在调用嵌入式实