【问题标题】:How to filter MongoDB Charts with ObjectID?如何使用 ObjectID 过滤 MongoDB 图表?
【发布时间】:2021-05-07 09:01:11
【问题描述】:

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

【问题讨论】:

    标签: reactjs mongodb mongoose mongodb-charts


    【解决方案1】:

    刚刚意识到语法错误。

    我将 '$toObjectId' 切换为 '$oid' 并且它有效。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 2021-02-15
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      相关资源
      最近更新 更多