2017-03-04 2 views
0

Was ist falsch an dieser Bedingung?Fehler in einem Mongo-Knoten-Zustand

var conditions = { 
    $and: [ 
     {username: req.body.globalUserName}, 
     $or: [ 
      {'pendingFriends._id': {$ne: req.user._id.toString()}, 
      {'friends._id': {$ne: req.user._id.toString()}} 
     ] 
    ] 
} 

Ich erhalte die folgende Fehlermeldung:

  $or: [ 
      ^
SyntaxError: Unexpected token : 
    at Object.exports.runInThisContext (vm.js:76:16) 
    at Module._compile (module.js:542:28) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.runMain (module.js:604:10) 
    at run (bootstrap_node.js:394:7) 
    at startup (bootstrap_node.js:149:9) 
    at bootstrap_node.js:509:3 

Dies ist für eine fineOneAndUpdate Abfrage. Was ist falsch an meinem Code? Vielen Dank! Jede Hilfe wird geschätzt

Antwort

0

Jede Bedingung sollte ein Objekt sein. Der Operator ist ein Array, aber Sie begegnen ihm als Objekt.

var conditions = { 
    $and: [ 
     {username: req.body.globalUserName}, 
     {$or: [ 
      {'pendingFriends._id': {$ne: req.user._id.toString()}, 
      {'friends._id': {$ne: req.user._id.toString()}} 
     ]} 
    ] 
}