MongoDB: Vergleiche ein nicht leeres Dokument in einem Array

Habe ich eine Sammlung von strukturierten folgendermassen:

{
  _id: 1,
  score: [
    {
      foo: 'a',
      bar: 0,
      user: {user1: 0, user2: 7}
    }
  ]
}

Brauche ich, um alle Dokumente zu suchen, die mindestens einen "score-Wert" (element in der Partitur array), die einen bestimmten Wert hat der 'bar' und ein nicht-leeren 'user' sub-Dokument.

Dies ist, was ich kam mit (und es schien, wie es funktionieren sollte):

db.col.find({score: {"$elemMatch": {bar:0, user: {"$not":{}} }}})

Aber, ich bekomme diese Fehlermeldung:

error: { "$err" : "$not cannot be empty", "code" : 13030 }

Anderen Weg, dies zu tun?

Kommentar zu dem Problem
Ist, dass genau wie ist Sie aufgebaut? Scheint ein bisschen ab. > var doc = { score: [ foo: 'a', Takt: 0, Benutzer: { user1: 0, "Benutzer2": 7 } ] }; do Jul 7 00:43:42 SyntaxError: missing ] after element list (shell):1 Kommentarautor: Justin Jenkins
@Justin: du hast Recht, habe vergessen die geschweiften Klammern innerhalb des array. Kommentarautor: Dmitri

InformationsquelleAutor der Frage Dmitri | 2011-07-07

Schreibe einen Kommentar