Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在mongodb中查找数组大小大于1的文档_Javascript_Node.js_Arrays_Mongodb_Express - Fatal编程技术网

Javascript 如何在mongodb中查找数组大小大于1的文档

Javascript 如何在mongodb中查找数组大小大于1的文档,javascript,node.js,arrays,mongodb,express,Javascript,Node.js,Arrays,Mongodb,Express,我想查找所有存在且数组大小大于1的文档 我的MongoDB系列看起来像 { "_id" : ObjectId("5eaaeedd00101108e1123452"), "type" : ["admin","teacher","student"] } { "_id" : ObjectId("5eaaeedd00101108e1123453

我想查找所有存在且数组大小大于1的文档

我的MongoDB系列看起来像

{
  "_id" : ObjectId("5eaaeedd00101108e1123452"),
  "type" : ["admin","teacher","student"]
}
{
  "_id" : ObjectId("5eaaeedd00101108e1123453"),
  "type" : ["student"], 
}
如何查找具有多个类型的文档

db.collection.find({type: {$gt: 1}})
只需更改学院的名称


gt
意味着更好,你可以看到更多关于它的信息

  • 你可以用
  • db.collectionName.find({“type”:{$gt:1})

  • 你可以用

  • db.collectionName.find({$where:“type>1”})

    你可以这样做。这是工作版本>4.2

    db.collection.find({
          $expr: {
            $gt: [
              {
                $size: "$type"
              },
              1
            ]
          }
        })
    
    工作

    如果你用得少,你可以做如下事情

    db.collection.find({
      type: {
        $gt: {
          $size: 1
        }
      }
    })
    

    此问题的唯一有效解决方案如下:

    db.collection.find({
      $expr: {
        $gt: [
          {
            $size: "$arrayfield"
          },
          1
        ]
      }
    })
    

    所有其他解决方案都不起作用。尝试过。

    从MongoDB 4.4开始,$where不再支持不推荐的BSON类型JavaScript和作用域(即BSON类型15)。自版本4.2.1以来,不推荐使用作用域为$where函数的JavaScript。所以当你升级你的版本时,它不会工作