是否可以在mongoDB中搜索文档内字段内对象内的键?

ecr0jaav  于 2022-12-18  发布在  Go
关注(0)|答案(1)|浏览(93)

我在页面上有一个表单,我希望用户在表单中输入内容,单击submit,然后使用表单的输入向MongoDB发出请求,并使用nodejs、mongoose和ejs将请求的一部分呈现到页面上
集合的模式有一个总是包含一个对象的字段,我想在集合中搜索一个具有与表单输入相匹配的键的文档。
集合的架构为

const ArrivalTimesSchema = new mongoose.Schema({

 postcodeArrivalTimes: {
   type: Object,
   required: true,
  },
 workerId: {
   type: String,
   required: false
  },
 company: {
   type: String,
   required: true    
  },
})

下面是一个邮政编码到达时间的示例

postcodeArrivalTimes = {AL95AT:"07:06", DL56EP:"13:06",AL14PL:"19:15"}

因此,在这种情况下,如果有人在输入表单中输入AL 95 AT,我希望返回此文档,我该如何操作?
不是所有的文档都包含关键字AL 95 AT,但可能有多个,我想最后一个。
为此,我认为可以使用.sort({ $natural:-1 }).limit(1)在find()中,但我不确定如何在字段内的对象中搜索键。
感谢您发送编修。

wfveoks0

wfveoks01#

let input = "input" //inputKeyValue
let query = {};
query[input] = { $exists: true };
db.collection.find(query).sort({ $natural: -1 }).limit(1)

相关问题