如何使用 ObjectID 筛选 MongoDB 个图表?

How to filter MongoDB Charts with ObjectID?

我正在尝试按用户的组织 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?

刚刚发现语法错误。

我将“$toObjectId”切换为“$oid”,它起作用了。

const filter = { 'organization': {'$oid': user.organization} }