我正在尝试根据自组中第一个文档以来的时差汇总文档。需要将所有存储在数据库中的文档在第一次存储后的10秒内进行分组,存储在10秒后的文档将在下一组中,依此类推。
这看起来像
group1:带有时间戳的文档<该组中第一个文档的时间戳+10000
group2:带有时间戳的文档<该组中第一个文档的时间戳+ 10000 ...
我们需要它来分析此时间间隔内的最大值,因为只有该时间段内的最大值才有意义。
我到目前为止尝试过的代码尚不可用。
我尝试的公式是: 当前-(分钟+下限((当前-分钟)/ 10000)* 10000-当前模块最小值)
当前是当前文档的时间
min是该组中的最短时间
floor和mod是Mongodb的floor和mod功能。
{this.renderMaxTotal()}
当前输出为:
onChange handler
文档如下:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
data: [],
library: null,
};
}
componentDidMount() {
fetch("/json.bc", {
method: "get"
})
.then(response => response.text())
.then(text => {
let Maindata = JSON.parse(text.replace(/\'/g, '"'));
this.setState(
state => ({
...state,
data: Maindata
}),
() => {
this.reorganiseLibrary();
}
);
})
.catch(error => console.error(error));
}
reorganiseLibrary = () => {
const { data } = this.state;
let library = data;
library = _.chunk(library);
this.setState({
library,
});
};
handlePerPage = evt =>
this.setState(
{
perPage: evt.target.value
},
() => this.reorganiseLibrary()
);
renderMinTotal = () => {
const { library } = this.state;
if (!library || (library && library.length === 0)) {
return "";
}
return library.reduce((acc, lib) => {
const libMin = Math.min(...lib.map(item => item.totalCom));
return acc === undefined ? libMin : libMin < acc ? libMin : acc;
}, undefined);
};
renderMaxTotal = () => {
const { library } = this.state;
if (!library || (library && library.length === 0)) {
return "";
}
return library.reduce((acc, lib) => {
const libMax = Math.max(...lib.map(item => item.totalCom));
return libMax > acc ? libMax : acc;
}, 0);
};
handlerChange = evt =>{
let value = evt.target.value
///what should be written here///////
}
render() {
const { library } = this.state;
return (
<div>
<div>
<input
type="range"
min={this.renderMinTotal()}
max={this.renderMaxTotal()}
value={this.renderMaxTotal()}
step="1000"
className="multirange"
onChange={this.handlerChange}
/>
</div>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById('Result'))