MongoDB 运算符顺序
MongoDB order of operators
我正在寻找电影:
- 在他们的 "genres" 中只包含 "Comedy" 和 "Crime"。
- "Comedy"排在第一位
我知道我可以这样查询:
.find({ "genres": ["Comedy", "Crime"] })
但是,我不明白为什么以下方法不起作用:
.find({
"genres.0": "Comedy",
"genres": { $size: 2 },
"genres": { $all: ["Comedy", "Crime"] }
}
因此,我得到如下条目:
["Comedy", "Crime", "Drama"]
但是为什么呢?
您的查找对象中有两次 genres
,这意味着第二个条目会覆盖第一个条目。当您对同一字段有两个条件时,您要么需要使用 $and 运算符,要么像这样组合它们:"genres": { $size:2, $all: ["Comedy", "Crime"] }
我正在寻找电影:
- 在他们的 "genres" 中只包含 "Comedy" 和 "Crime"。
- "Comedy"排在第一位
我知道我可以这样查询:
.find({ "genres": ["Comedy", "Crime"] })
但是,我不明白为什么以下方法不起作用:
.find({
"genres.0": "Comedy",
"genres": { $size: 2 },
"genres": { $all: ["Comedy", "Crime"] }
}
因此,我得到如下条目:
["Comedy", "Crime", "Drama"]
但是为什么呢?
您的查找对象中有两次 genres
,这意味着第二个条目会覆盖第一个条目。当您对同一字段有两个条件时,您要么需要使用 $and 运算符,要么像这样组合它们:"genres": { $size:2, $all: ["Comedy", "Crime"] }