【发布时间】:2011-07-07 07:12:06
【问题描述】:
我有一个这样构成的集合:
{
_id: 1,
score: [
{
foo: 'a',
bar: 0,
user: {user1: 0, user2: 7}
}
]
}
我需要找到至少有一个“分数”(分数数组中的元素)的所有文档,该“分数”具有一定的“bar”值和一个非空的“用户”子文档。
这就是我想出的(而且看起来应该可行):
db.col.find({score: {"$elemMatch": {bar:0, user: {"$not":{}} }}})
但是,我得到了这个错误:
error: { "$err" : "$not cannot be empty", "code" : 13030 }
还有其他方法吗?
【问题讨论】:
-
确实是这样的结构吗?好像有点不对劲> var doc = { score: [ foo: 'a', bar: 0, user: { user1: 0, user2: 7 } ] }; Thu Jul 7 00:43:42 SyntaxError: missing ] after element list (shell):1
-
@Justin:你说得对,忘记了数组中的大括号。