小编Mat*_*eir的帖子

MongoDB:在数组匹配参数中查找子文档

在MongoDB中,我想基于满足某些参数的子文档的值来查找文档.具体来说,我的文档结构如下:

{
  name: "test",
  data: [{
    name: "test1",
    start: 0,
    end: 2
  },
  {
    name: "test2",
    start: 15
    end: 18
  }]
}
Run Code Online (Sandbox Code Playgroud)

如果数据子文档的开始时间小于5并且同一子文档的结束时间大于5,我怎么能告诉MongoDB只返回我的文档?目前,如果我这样做

db.foo.findOne({
  'data.start': { $lte: 5 },
  'data.end': { $gte: 5 }
})
Run Code Online (Sandbox Code Playgroud)

它将返回我的文档,因为5大于0且小于18.如果5(或任何值)大于0且小于2或大于15且小于18,我怎么能告诉MongoDB只返回我的文档?

mongodb

39
推荐指数
1
解决办法
4万
查看次数

标签 统计

mongodb ×1