Mongoose查询忽略不在模式中的字段

时间:2018-01-16 08:25:55

标签: mongoose

这是我的架构:

1=2
3=2
7=2

我想用以下方式查询:

const Post = mongoose.model('Post', {
  title: String,
  authorId: String,
})

导致Post.find({ authorId: '123', someField: 1 }) ,如何让mongoose忽略不在架构中的查询字段?

1 个答案:

答案 0 :(得分:1)

有一个标记strictQueryhttps://mongoosejs.com/docs/guide.html#strictQuery

  

出于向后兼容的目的,strict选项不适用于filter参数进行查询。猫鼬有一个单独的strictQuery选项,可以将filter参数的严格模式切换为查询。

const mySchema = new Schema({ field: Number }, {
  strict: true,
  strictQuery: true // Turn on strict mode for query filters
});
const MyModel = mongoose.model('Test', mySchema);

// Mongoose will strip out `notInSchema: 1` because `strictQuery` is `true`
MyModel.find({ notInSchema: 1 });