首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个嵌套对象的查询不起作用?

为什么这个嵌套对象的查询不起作用?
EN

Stack Overflow用户
提问于 2015-10-24 01:59:45
回答 1查看 40关注 0票数 0

给定此Job对象结构,其中users是用户文档的数组:

代码语言:javascript
运行
复制
{
    _id: "56228b5ba851623018f88ff7",
    created: "2015-10-17T17:54:35.475Z",
    active: true,
    workOrders: [{
       startDate: "2015-10-18T05:00:00.000Z",
       name: "Test1",
       users: [{...}]
    },{
      startDate: "2015-10-20T05:00:00.000Z",
      name: "Test2",
      users: [{...}]
    }]
}

为什么这个查询会起作用:

代码语言:javascript
运行
复制
  Job.find({
    'workOrders.users._id' : userId,
    'created' : { '$gte' : new Date('10/17/2015'), '$lt': new Date('10/25/2015')},
    'active' : true
  }).exec(cb);

但这个不是:

代码语言:javascript
运行
复制
  Job.find({
    'workOrders.users._id' : userId,
    'workOrders.startDate' : { '$gte' : new Date('10/20/2015'), '$lt': new Date('10/25/2015')},
    'active' : true
  }).exec(cb);

最初的想法是workOrder.startDate不是date类型,但它确实是。

有什么原因使我不能以这种方式查询嵌套的workOrder对象吗?我只是搞不懂为什么我可以查询Job文档的created date属性,我可以查询workOrders数组中嵌套的user文档的数组,但是最后一个查询不起作用。

注意,没有抛出错误,它只是不返回任何结果。即使我将日期范围扩展到绝对包含所有日期,例如2000年1月1日到2016年1月1日,我也什么也得不到。

EN

回答 1

Stack Overflow用户

发布于 2015-10-24 04:06:39

你能把这两个startDate都替换为:

代码语言:javascript
运行
复制
created: {
        type: Date,
        default: Date.now
    },

...to确定您是否可以向一个文档添加多个日期,并且您的startDate代码是否正确?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33308686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档