代码之家  ›  专栏  ›  技术社区  ›  Diego Perdomo

在Mongoose中访问阵列

  •  0
  • Diego Perdomo  · 技术社区  · 7 年前

    我是javascript新手,据我所知,您可以使用此语法访问作为对象的数组项 arrayName[index].property
    现在来看这个例子:

    var UserSchema = new mongoose.Schema({
      email: {
        required: true,
        type: String,
        minlength: 1,
        trim: true,
        unique: true,
        validate: {
          validator: validator.isEmail,
          message: "{VALUE} is not a valid email"
        }
      },
      password: {
        required: true,
        minlength: 6,
        type: String,
        trim: true
      },
      tokens: [
        {
          access: {
            type: String,
            required: true
          },
          token: {
            type: String,
            required: true
          }
        }
      ]
    });
    

    如果我尝试像这样访问令牌数组中的令牌属性 "tokens.token" 猫鼬让我做。为什么?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Steve Holgado    7 年前

    使用Mongoose可以这样做的原因是,这是有效的MongoDB查询语法(而不是标准JavaScript),用于查询数组字段中的对象属性。

    这也是您需要报价的原因: "tokens.token"

    代币 代币 数组与字符串匹配 “什么”

    Model.find({ "tokens.token": "something" }, function(err, docs) {
      // Do something with result
    })