【发布时间】:2020-04-01 12:29:45
【问题描述】:
我想要在 MongoDB 中执行以下操作的查询:
- 返回的文档
profession.organization属性可以是字符串'bank'。 - 返回的文档
profession.city属性可以是字符串“NY”。 - 但是,如果文档中“profession.organization”为“bank”,“profession.city”为“NY”,则必须排除该文档。
总而言之,一个文档可以有城市“NY”或组织“银行”,但如果它同时具有这些属性,则必须排除。
到目前为止我已经尝试过什么。
targetObj = await db.db(MDBC.db).collection(MDBC.pC)
.aggregate([{
$match: {
$and: [
{ 'profession.organization': { $ne: 'bank' } },
{ 'profession.city': { $ne: 'NY' } }
]
}
}, { $sample: { size: 1 } }]).next();
【问题讨论】:
-
所以现在它不起作用?你最后得到了什么文件?
-
不,它不起作用。我既没有得到组织“银行”,也没有得到城市“纽约”
-
那么,最后,每个文档都必须有
profession.organization作为bank? -
编辑了我的答案,现在应该更清楚了
-
因此,您需要所有文档中的示例文档,这样每个文档都没有这两个属性。看我的回答。
标签: javascript mongodb mongodb-query