在SingBox中,节点是数据存储的基本单元,每个节点都有唯一的ID、可变的值、标签集合、状态和创建时间等属性。节点筛选是根据特定的条件从节点中筛选出符合条件的节点。以下是常见的节点筛选方法
根据节点ID筛选
节点ID是每个节点的唯一标识符,可以通过它直接定位到特定节点。
// 根据节点ID筛选
const node = await box.getNode('节点ID');
根据节点值筛选
节点值可以是任意数据类型,可以根据值的类型和内容进行筛选。
// 根据节点值筛选
const nodes = await box.nodes('value', {
'key': '节点值',
'value': '目标值'
});
key:指定要比较的属性名。value: 指定要比较的目标值。
根据节点标签筛选
节点标签可以添加自定义标签,方便分类管理。
// 根据节点标签筛选
const nodes = await box.nodes('label', {
'label': ['标签1', '标签2']
});
label: 指定要筛选的标签数组。
根据节点状态筛选
节点状态包括激活、禁用和删除状态,可以用来筛选活跃的节点。
// 根据节点状态筛选
const activeNodes = await box.nodes('state', {
'state': 'active' // 只能激活状态的节点
});
根据创建时间筛选
可以筛选出在特定时间段内创建的节点。
// 根据创建时间筛选
const recentNodes = await box.nodes('createTime', {
'createTime': '2023-01-01'
});
组合多个条件筛选
可以通过组合多个条件使用AND逻辑来精确筛选。
// 组合多个条件筛选
const nodes = await box.nodes('value, label', {
'value': '目标值',
'label': ['标签1', '标签2']
});
范围查询
可以对数值属性执行范围查询。
// 范围查询
const nodes = await box.nodes('value', {
'value': {
'min': 10,
'max': 20
}
});
示例代码
以下是一个完整的筛选节点的示例代码:
// 筛选节点示例
async function filterNodes() {
try {
const box = new SingBox();
//筛选节点
const result = await box.nodes('value, label', {
'value': '目标值',
'label': ['标签1', '标签2']
});
// 输出结果
console.log('筛选结果:', result);
} catch (error) {
console.error('筛选节点失败:', error);
}
}
注意事项
- 性能考虑:对于大规模数据集,复杂的筛选条件可能会影响性能,建议合理设计查询逻辑。
- 排序和分页:如果结果需要排序,可以在筛选结果中进行排序处理。
- 状态管理:了解节点的状态变化(激活/禁用/删除)对筛选的影响。
通过以上方法,你可以根据需求筛选出符合条件的节点,高效管理数据。

如果没有特点说明,本站所有内容均由原子加速器官方网站|提供客户端版本、线路管理与节点选择功能,适配Windows、Android、iOS等设备,便于用户进行网络连接优化原创,转载请注明出处!