payloadcms / payload

Payload is the open-source, fullstack Next.js framework, giving you instant backend superpowers. Get a full TypeScript backend and admin panel instantly. Use Payload as a headless CMS or for building powerful applications.
https://payloadcms.com
MIT License
25.61k stars 1.63k forks source link

Cannot query relationship in blocks #9171

Open stofolus opened 1 day ago

stofolus commented 1 day ago

Describe the Bug

Before the change where relationship keys became ObjectIds it was possible to query like this (Website template, seeded contact page) when the layout has a form block with a specific id.

  const pages = await payload.find({
    collection: 'pages',
    where: {
      'layout.form': { equals: '6734cc2aa1b5d8b785404546' },
    },
  })

This will no work and it seems to be because it's an object id now. If would be great if this could work again or at least if there was a way to tell payload that this is an ObjectId

Link to the code that reproduces this issue

Website template. Seed the database

Reproduction Steps

Now you can either trust me or change the value in the database from an ObjectId to a string with the same value and you'll se it working.

Which area(s) are affected? (Select all that apply)

db-mongodb

Environment Info

Binaries:
  Node: 20.17.0
  npm: 10.8.2
  Yarn: N/A
  pnpm: 9.0.2
Relevant Packages:
  payload: 3.0.0-beta.129
  next: 15.0.0
  @payloadcms/db-mongodb: 3.0.0-beta.129
  @payloadcms/email-nodemailer: 3.0.0-beta.129
  @payloadcms/graphql: 3.0.0-beta.129
  @payloadcms/live-preview: 3.0.0-beta.129
  @payloadcms/live-preview-react: 3.0.0-beta.129
  @payloadcms/next/utilities: 3.0.0-beta.129
  @payloadcms/payload-cloud: 3.0.0-beta.129
  @payloadcms/plugin-form-builder: 3.0.0-beta.129
  @payloadcms/plugin-nested-docs: 3.0.0-beta.129
  @payloadcms/plugin-redirects: 3.0.0-beta.129
  @payloadcms/plugin-search: 3.0.0-beta.129
  @payloadcms/plugin-seo: 3.0.0-beta.129
  @payloadcms/richtext-lexical: 3.0.0-beta.129
  @payloadcms/translations: 3.0.0-beta.129
  @payloadcms/ui/shared: 3.0.0-beta.129
  react: 19.0.0-rc-65a56d0e-20241020
  react-dom: 19.0.0-rc-65a56d0e-20241020
Operating System:
  Platform: linux
  Arch: x64
  Version: #1 SMP Tue Nov 5 00:21:55 UTC 2024
  Available memory (MB): 15970
  Available CPU cores: 12
github-actions[bot] commented 1 day ago

Please add a reproduction in order for us to be able to investigate.

Depending on the quality of reproduction steps, this issue may be closed if no reproduction is provided.

Why was this issue marked with the invalid-reproduction label?

To be able to investigate, we need access to a reproduction to identify what triggered the issue. We prefer a link to a public GitHub repository created with create-payload-app@beta -t blank or a forked/branched version of this repository with tests added (more info in the reproduction-guide).

To make sure the issue is resolved as quickly as possible, please make sure that the reproduction is as minimal as possible. This means that you should remove unnecessary code, files, and dependencies that do not contribute to the issue. Ensure your reproduction does not depend on secrets, 3rd party registries, private dependencies, or any other data that cannot be made public. Avoid a reproduction including a whole monorepo (unless relevant to the issue). The easier it is to reproduce the issue, the quicker we can help.

Please test your reproduction against the latest version of Payload to make sure your issue has not already been fixed.

I added a link, why was it still marked?

Ensure the link is pointing to a codebase that is accessible (e.g. not a private repository). "example.com", "n/a", "will add later", etc. are not acceptable links -- we need to see a public codebase. See the above section for accepted links.

Useful Resources

r1tsuu commented 10 hours ago

Hello @stofolus, thanks for the issue. This PR https://github.com/payloadcms/payload/pull/9115 will fix it, my test passes there (while doesn't on beta)