如何最好跨文档在文档中查询

时间:2013-04-28 19:01:17

标签: mongodb

我有很多文件,比如......

{
    _id : "abc",
    createdOn : ISODate( '2013-04-27T00:00:00.000Z' ),
    updatedOn : ISODate( '2013-04-27T00:00:00.000Z' )
},
{
    _id : "def",
    createdOn : ISODate( '2013-04-27T00:00:00.000Z' ),
    updatedOn : ISODate( '2013-04-27T00:11:11.111Z' )
}

将文档插入列表时,createdOn和updatedOn值相等。当文档存在时,只更新updatedOn字段。

我正在尝试编写查询,找到特定日期范围内的所有文档updatedOn,但只想要那些创建了On!= updatedOn的文档。到目前为止我得到的查询有效,但我讨厌它。我正在努力弄清楚如何在不使用直接JavaScript的情况下跨字段进行查询。这就是我所拥有的:

startTime = ISODate( '2013-04-27T00:00:00.000Z' );
endTime = ISODate( '2013-04-27T01:00:00.000Z' );
db.profiles.find(
  { "updatedOn" : { $gte : startTime, $lt : endTime },
    $where : "obj.createdOn == null || obj.createdOn.getTime() != obj.updatedOn.getTime()"
  },
  {_id: 1, createdOn: 1, updatedOn: 1}
);

有更好的方法吗?喜欢避免$ javascript事物的东西,只是让我直接比较文档的createdOn和updatedOn字段。

0 个答案:

没有答案