如何检查MongoDB中的数组是否已存在该项?

huangapple go评论68阅读模式
英文:

How to check if item has already existed in array in MongoBD?

问题

如何检查项目是否已存在于数组中?我有一个类似下面的模式模型,我想检查用户ID是否存在于任何字段(可爱、甜美、性感...)中。

const UserSchema = new Schema({
    ...
    vote_user: {
        cute: [Schema.Types.ObjectId],
        sweet: [Schema.Types.ObjectId],
        sexy: [Schema.Types.ObjectId],
    },
    ...
})
英文:

How do I check if item has already existed in array? I have a schema model like below and I want to check if user id existed in any fields (cute, sweet, sexy...).

  const UserSchema = new Schema({
      ...
      vote_user: {
        cute: [Schema.Types.ObjectId], 
        sweet: [Schema.Types.ObjectId], 
        sexy: [Schema.Types.ObjectId],
      },
      ...

  })

答案1

得分: 1

一种选择是使用 $or

db.collection.find(
  {$or: [
    {cute: userId)},
    {sweet: userId)},
    {sexy: userId)}
  ]}
)

playground example 上查看其工作原理。

英文:

One option is using $or:

db.collection.find(
  {$or: [
    {cute: userId)},
    {sweet: userId)},
    {sexy: userId)}
  ]}
)

See how it works on the playground example

huangapple
  • 本文由 发表于 2023年1月7日 22:32:46
  • 转载请务必保留本文链接:https://go.coder-hub.com/75041111.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定