MongoDb$elemMatch未按预期工作
我正在编写一个简单的查询,该查询使用带有properyMongoDb$elemMatch未按预期工作,mongodb,Mongodb,我正在编写一个简单的查询,该查询使用带有propery标记的对象,如果满足以下条件,则必须返回一个文档: 它正好有3个项目 其中一个是:image 其中一个以:开头,但不是图像 其中一个不是以开头的: 所以我想要类型为{Tags:[“:image”,“:I任何东西”,“somethingelse”]} 我写了以下内容: db.myCollection.find({ Tags: { $elemMatch: { $eq: ":image" }, $elemMa
标记的对象,如果满足以下条件,则必须返回一个文档:
它正好有3个项目
其中一个是:image
其中一个以:
开头,但不是图像
其中一个不是以开头的:
所以我想要类型为{Tags:[“:image”,“:I任何东西”,“somethingelse”]}
我写了以下内容:
db.myCollection.find({
Tags: {
$elemMatch: {
$eq: ":image"
},
$elemMatch: {
$ne: ":image",
$regex: /^:\w+$/
},
$elemMatch: {
$regex: /^\w+$/
},
$size: 3
}
}).limit(50)
但是它不能像预期的那样工作,并且返回像{Tags:[“:image”,“something”,“somethingelse”]}
我哪里弄错了?您需要使用组合条件:
db.myCollection.find({ $and: [
{ Tags: {
$elemMatch: {
$eq: ":image"
} } },
{ Tags: {
$elemMatch: {
$ne: ":image",
$regex: /^:\w+$/
} } },
{ Tags: {
$elemMatch: {
$regex: /^\w+$/
} } },
{ Tags: { $size: 3 } }
] });