我在我的收藏中有这个文件,我需要找到这样的所有文件的哪个字段的值大于20000。一些字段正在为集合动态变化。
Se_data = pd.Series(Counter(np.random.randint(0,10,100)))
with plt.style.context("seaborn-whitegrid"):
fig, ax = plt.subplots()
Se_data.plot(kind="barh", ax=ax, title="No Border")
ax.spines['bottom'].set_color('0.5')
ax.spines['top'].set_color(None)
ax.spines['right'].set_color('0.5')
ax.spines['left'].set_color(None)
ax.patch.set_facecolor('0.1')
plt.grid(b=True, which='major', color='0.2', linestyle='-')
plt.grid(b=True, which='minor', color='0.2', linestyle='-')
ax.tick_params(axis='x', colors='0.7', which='both')
ax.tick_params(axis='y', colors='0.7', which='both')
ax.yaxis.label.set_color('0.9')
ax.xaxis.label.set_color('0.9')
ax.margins(5)
fig.patch.set_facecolor('0.15')
这有效但我还需要检查其他字段;但是我不想为每个人手动编写查询。这有什么方法吗? 例如,我想检查
db.doors.find(
{
"doorseller": "e0asda9a0fqqf7-f0asdas66-48c4-bfe5-ssss",
"good.Derinlik.value" : {$exists:true},
$where: "this.good.Derinlik.value.length > 20000"
}
)
这些文件正在改变,每个文件都有其名称。
这是示例文档
-runningStatus
-good.renkodu.value
答案 0 :(得分:1)
我可以建议您可以在DBshell中运行的简单javascript代码:
var keys = [];
db.doors.find({}).forEach(function(doc){
for (var key in doc){
if(typeof(doc[key]) == 'number' && doc[key] > 20000){
keys.push({"doc.id": doc._id, "key":key, "value":doc[key]});
}
}
});
print(keys); // prints all the results
备注:强>
- 当您有许多文档时,doc.id是特定文档的标识符。
- 当值在同一深度(级别0)时,上面的脚本很好。
醇>