Javascript 如何在mongodb中查找数组大小大于1的文档
我想查找所有存在且数组大小大于1的文档 我的MongoDB系列看起来像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
{
"_id" : ObjectId("5eaaeedd00101108e1123452"),
"type" : ["admin","teacher","student"]
}
{
"_id" : ObjectId("5eaaeedd00101108e1123453"),
"type" : ["student"],
}
如何查找具有多个类型的文档
db.collection.find({type: {$gt: 1}})
只需更改学院的名称
gt
意味着更好,你可以看到更多关于它的信息
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。所以当你升级你的版本时,它不会工作