在 mongodb 中查找特定内容
Posted
技术标签:
【中文标题】在 mongodb 中查找特定内容【英文标题】:Find with specific content in mongodb 【发布时间】:2020-08-17 19:28:32 【问题描述】:您好,我怎样才能通过某些特定查询找到数据。例如,我在下面有一个集合:
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "05"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "06"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "07"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "08"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "04"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2021",
"month" : "05"
所以我想获取数据“centId”必须是“261FB12F”,“servId”必须是“CBBFEC62”,“year”不是“2020”,“month”也不是“06”。我如何发送查询。我想要如下结果:
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "06"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "07"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "08"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2020",
"month" : "04"
,
"centId" : "261FB12F",
"servId" : "CBBFEC62",
"year" : "2021",
"month" : "05"
【问题讨论】:
你说“年”不是“2020”,所有的例子都是2020,但最后一个是2020。第一个是月份=“06” - 请澄清你的选择标准。跨度> 是的,“年”不等于“2020”,“月”不等于“06”。并且“centId”必须等于“261FB12F”并且“centerId”必须等于“CBBFEC62” 当你说不相等时,你的结果怎么会有“2020”或“06”? 所以我想获取数据“centId”必须是“261FB12F”,“servId”必须是“CBBFEC62”,“year”不是“2020”,“month”不是“06”也是。 【参考方案1】:听起来您只想使用 Mongo 的 logical 表达式。特别是您的情况下的 $and 运算符:
db.collection.find(
$and: [
centerId: "A",
ServiceId: "B",
country: $ne: "Georgia",
city: $ne: "Batumi"
]
)
【讨论】:
感谢我朋友的帮助,但您的代码在我的特殊示例中不起作用。虽然这个例子像我的特例 那么您有不同的问题,查询错误的集合或数据库,如果您执行一个空的find
查询,您会看到结果吗?
我的朋友我用我的实际代码替换了示例代码,请尝试实际收藏【参考方案2】:
db.getCollection("mycollection").find(
"centerId": "A",
"ServiceId": "B",
"country":
$ne: 'Georgia'
,
city:
$ne: 'Batumi'
)
【讨论】:
@Vagif 请将查询中的集合名称替换为您的实际集合名称,然后执行【参考方案3】:db.collection.aggregate(
$match:
$expr:
$and: [
$eq: [
"$centId",
"261FB12F"
]
,
$eq: [
"$servId",
"CBBFEC62"
]
,
$ne: [
"$year",
"2020"
]
,
$ne: [
"$month",
"06"
]
]
)
MongoPlayGroundLink
【讨论】:
以上是关于在 mongodb 中查找特定内容的主要内容,如果未能解决你的问题,请参考以下文章
通过 Mongoose、Node.js、MongodB 中的特定属性查找嵌入式文档
如何检查 MongoDB 数据库中的所有集合以查找特定关键字?
从 Vava 到 MongoDB 查询:查找特定日期范围内的事件