我使用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}})
答案 0 :(得分:0)
文档中的键是字符串。密钥中允许使用任何UTF-8字符,但有一些明显的例外:
1)键不能包含字符\ 0(空字符)。这个 character用于表示键的结尾。
2)。和$字符 有一些特殊的属性,只能在某些特定的情况下使用 情况,如后面章节所述。一般来说,他们应该 被视为保留,如果使用,司机会抱怨 不适当。