Saya mencoba memfilter bagan di MongoDB dengan ID organisasi pengguna. Filter berfungsi dengan baik dengan string dan angka, tetapi tidak berfungsi ketika saya mencoba memfilter menggunakan ObjectIDs.

Ini tidak memberikan hasil, kemungkinan karena "organisasi" adalah ObjectID;

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

Ini memberi saya kesalahan (Kesalahan memuat data untuk bagan ini (kode kesalahan: -1). Kesalahan Tidak Dikenal.);

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

Filter string ini berfungsi tetapi bukan itu yang saya butuhkan;

const filter = { 'organization_name': 'test' }

Filter string ini berfungsi tetapi bukan itu yang saya butuhkan;

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;

Apakah ada cara untuk mengonversi string ke ObjectID Mongoose di ujung depan?

0
wtmcm 7 Mei 2021, 12:01

1 menjawab

Jawaban Terbaik

Baru sadar sintaksnya salah.

Saya mengganti '$toObjectId' ke '$oid' dan berhasil.

const filter = { 'organization': {'$oid': user.organization} }
0
wtmcm 7 Mei 2021, 09:42