如何从特定操作系统筛选mongodb上的进程
您好,我想搜索一下mongo的当前流程, 我只想得到由特定操作系统完成的过程。通过示例窗口 运行下面的查询如何从特定操作系统筛选mongodb上的进程,mongodb,mongodb-query,Mongodb,Mongodb Query,您好,我想搜索一下mongo的当前流程, 我只想得到由特定操作系统完成的过程。通过示例窗口 运行下面的查询 db.aggregate( [ { $currentOp : { allUsers: true, localOps: true } }, { $match: { shard : 'shard-1' }} ]) 我得到了一个很大的结果。我需要过滤更多属性 我知道操作系统的信息。我可以从属性$client从命令property获得json结果: "command": {
db.aggregate( [
{ $currentOp : { allUsers: true, localOps: true } },
{ $match: { shard : 'shard-1' }}
])
我得到了一个很大的结果。我需要过滤更多属性
我知道操作系统的信息。我可以从属性$client
从命令
property获得json
结果:
"command": {
"$client": {
"driver": {
"name": "nodejs",
"version": "3.1.7-1"
},
"os": {
"type": "Windows_NT",
"name": "win32",
"architecture": "x64",
"version": "10.0.17763"
},
"platform": "Node.js v10.2.0, LE, mongodb-core: 3.1.6",
"application": {
"name": "NoSQLBoosterV5_91046.417"
},
},
"$configServerState": {
"opTime": {
"ts": Timestamp(1553006039,
5),
"t": NumberLong(4)
}
},
"$db": "cache"
}
如何通过
os
和类型进行过滤?根据您的示例,简单的附加过滤器应该可以工作
db.aggregate( [
{ $currentOp : { allUsers: true, localOps: true } },
{ $match: {$and: [
{ shard : 'shard-1' },
{ "command.$client.os.type": "Windows_NT" }]
}}
])
它对您有用吗?使用此$filter:
过滤items数组以仅包括价格大于或等于100的文档
完整的例子是:
db.sales.aggregate([
{
$project: {
items: {
$filter: {
input: "$items",
as: "item",
cond: { $gte: [ "$$item.price", 100 ] }
}
}
}
}
])
您可以在以下网站上阅读:
db.sales.aggregate([
{
$project: {
items: {
$filter: {
input: "$items",
as: "item",
cond: { $gte: [ "$$item.price", 100 ] }
}
}
}
}
])