gpt4 book ai didi

python - MongoDB 中的 Mod 运算符

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:13 24 4
gpt4 key购买 nike

MongoDB 中返回满足以下条件的所有查询的正确语法是什么:

a % 4 >= 2

我尝试使用下面的命令,但它返回空

db.data.find( { a : { $mod : [ 4, { $gte : 2 } ] } } );

另一种选择是使用 Javascript 表达式,如下所示:

db.data.find( "this.a % 4 >= 2" );

Javascript 表达式有效并返回预期的文档,但它在 PyMongo 中不起作用。

MongoDB 版本 2.0.4
PyMongo 版本 2.1.1

最佳答案

要在 PyMongo 中使用 where 表达式,试试这个:{ $where: "this.a % 4 >= 2"}

$mod 运算符根本不适用于这样的条件。您有三个选择:

  1. 使用 where 表达式
  2. 使用如下表达式:

    db.data.find( { $or : [ { a : { $mod : [ 4, 2 ] } },
    { a : { $mod : [ 4, 3 ] } }
    ] } );

    db.data.find( { $and : [ { a : { $not : { $mod : [ 4, 0 ] } } },
    { a : { $not : { $mod : [ 4, 1 ] } } }
    ] } );
  3. a % 4 存储在它自己的字段中。

关于python - MongoDB 中的 Mod 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com