Mongoose 查找记录,其中数组包含 2 个提供的元素
Mongoose find record where array contains 2 elements that are provided
已解决
大家好,
我有一个集合,其中有 1 个布尔值和一个包含两个字符串的数组。
例如
{
"_id" : ObjectId("62148497fc3ac7c59252b53b"),
"members" : [
"61e4f988b92b443b29c87c38",
"61f0dd62e21a45de185854e9"
],
"isGroup" : false,
"createdAt" : ISODate("2022-02-22T06:37:11.406Z"),
"updatedAt" : ISODate("2022-02-22T06:37:11.406Z"),
"__v" : 0
}
现在我想查找成员数组包含这两个字符串并且 isGroup 为假的记录。我正在传递前端成员中的两个字符串。
使用$all
db.collection.find({
members: {
"$all": [
"61e4f988b92b443b29c87c38",
"61f0dd62e21a45de185854e9"
]
},
isGroup: false
})
如果要搜索仅包含这两个值和布尔值的确切文档,可以使用以下代码
db.collection.find({
members:[
"61e4f988b92b443b29c87c38",
"61f0dd62e21a45de185854e9"
],
isGroup: false
})
相反,使用 $all 运算符定位包含两个条目的数组,而不考虑数组中的顺序或其他成员,使用以下代码
db.collection.find({
members:{$all:[
"61e4f988b92b443b29c87c38",
"61f0dd62e21a45de185854e9"
]},
isGroup: false
})
已解决
大家好, 我有一个集合,其中有 1 个布尔值和一个包含两个字符串的数组。 例如
{
"_id" : ObjectId("62148497fc3ac7c59252b53b"),
"members" : [
"61e4f988b92b443b29c87c38",
"61f0dd62e21a45de185854e9"
],
"isGroup" : false,
"createdAt" : ISODate("2022-02-22T06:37:11.406Z"),
"updatedAt" : ISODate("2022-02-22T06:37:11.406Z"),
"__v" : 0
}
现在我想查找成员数组包含这两个字符串并且 isGroup 为假的记录。我正在传递前端成员中的两个字符串。
使用$all
db.collection.find({
members: {
"$all": [
"61e4f988b92b443b29c87c38",
"61f0dd62e21a45de185854e9"
]
},
isGroup: false
})
如果要搜索仅包含这两个值和布尔值的确切文档,可以使用以下代码
db.collection.find({
members:[
"61e4f988b92b443b29c87c38",
"61f0dd62e21a45de185854e9"
],
isGroup: false
})
相反,使用 $all 运算符定位包含两个条目的数组,而不考虑数组中的顺序或其他成员,使用以下代码
db.collection.find({
members:{$all:[
"61e4f988b92b443b29c87c38",
"61f0dd62e21a45de185854e9"
]},
isGroup: false
})