MongoDB如何同时匹配两组字段值进行数据查询?
MongoDB查询实现方案
要查询appActions集合中符合以下条件的操作日志:
- 应用ID为111的所有
update-user操作 - 应用ID为222的所有
get-user操作
可以通过MongoDB的$or操作符组合两个逻辑与条件来实现,具体写法如下:
1. Mongo Shell 查询语句
db.appActions.find({ $or: [ { appId: 111, scope: 'update-user' }, { appId: 222, scope: 'get-user' } ] })
2. Node.js MongoDB驱动写法
如果使用Node.js官方MongoDB驱动,代码示例如下:
const { MongoClient } = require('mongodb'); async function queryTargetActions() { const client = await MongoClient.connect('mongodb://localhost:27017'); const db = client.db('你的数据库名称'); const targetActions = await db.collection('appActions').find({ $or: [ { appId: 111, scope: 'update-user' }, { appId: 222, scope: 'get-user' } ] }).toArray(); console.log(targetActions); await client.close(); } queryTargetActions().catch(console.error);
查询结果说明
根据提供的示例数据,上述查询会返回以下两条文档:
[ { _id: 456, appId: 111, scope: 'update-user', user: 20 }, { _id: 789, appId: 222, scope: 'get-user', user: 60 } ]
内容的提问来源于stack exchange,提问作者arianpress
相关产品推荐
相关产品推荐

