当密钥类型为ISO Date时,Mongo会查找密钥存在的记录

时间:2015-10-26 19:14:26

标签: mongodb

我使用ISODates作为密钥,使我的数据结构更紧凑,即:

{ISODate("2013-10-01T00:00:00.000Z"): <value>}

而不是:

{thing: {
  when:ISODate("2013-10-01T00:00:00.000Z"),
  value: <value>
}}

现在我想查找包含特定日期为关键字的所有记录,如:

db.collection.find({ ISODate("2013-10-01T00:00:00.000Z") : {$exists: true}})

但是这会返回错误:

E QUERY    SyntaxError: Unexpected token (

这很好:

db.collection.find({ any_key_that_is_not_a_date : {$exists: true}})

1 个答案:

答案 0 :(得分:0)

文档中的键是字符串。密钥中允许使用任何UTF-8字符,但有一些明显的例外:

  

1)键不能包含字符\ 0(空字符)。这个   character用于表示键的结尾。

     

2)。和$字符   有一些特殊的属性,只能在某些特定的情况下使用   情况,如后面章节所述。一般来说,他们应该   被视为保留,如果使用,司机会抱怨   不适当。