我正在尝试按用户的组织 ID 过滤 MongoDB 中的图表。过滤器适用于字符串和数字,但当我尝试使用 ObjectID 过滤时它不起作用。
这没有返回任何结果,可能是因为“组织”是一个 ObjectID;
const filter = { 'organization': user.organization }
这给了我一个错误(加载此图表的数据时出错(错误代码:-1)。未知错误。);
const filter = { 'organization': {'$toObjectId': user.organization} }
这个字符串过滤器有效,但不是我需要的;
const filter = { 'organization_name': 'test' }
这个字符串过滤器有效,但不是我需要的;
const MongoChart = props => {
const { baseUrl, chartId, height, filter, getToken } = props;
const classes = useStyles();
const chartRef = React.createRef();
const sdk = new ChartsEmbedSDK({
baseUrl: baseUrl,
autoRefresh: true,
showAttribution : false,
maxDataAge: 100,
getUserToken: async () => {
const token = await getToken();
return token;
}
});
const chart = sdk.createChart({
chartId: chartId,
height: height,
filter: filter
});
useEffect(() => {
chart.render(chartRef.current)
})
return (
<div className={classes.root}>
<div className={classes.chart} ref={chartRef} />
</div>
);
}
export default MongoChart;
有没有办法在前端将字符串转换为 Mongoose ObjectID?