2016-12-12 4 views
0
のいずれかである必要があります

jsonインデックスを作成し、クラウドダッシュボードでクエリをテストしました。Pouchdb-find +クラウド:エラー:不明な演算子 "0" -

{ 
    "selector": { 
    "$and": [ 
     { 
     "$and": [ 
      { "type": { "$eq": "user" }}, 
      { 
      "$or": [ 
       { "user":   { "$eq": "Elvis" }}, 
       { "first_name": { "$eq": "Elvis" }}, 
       { "middle_name": { "$eq": "Elvis" }}, 
       { "last_name": { "$eq": "Elvis" }} 
      ] 
      } 
     ] 
     }, 
     { 
     "$not": { 
      "$and": [ 
      { "type": { "$in": ["follower", "admin"] }}, 
      { "hive": { "$eq": "8049CF96-A4F2-D2BE-B014-AA4F72642F3F" }}, 
      { "user": { "$eq": "Elvis" }} 
      ] 
     } 
     } 
    ] 
    }, 
    "fields": [ 
    "_id", 
    "_rev" 
    ], 
    "sort": [ 
    { 
     "_id": "asc" 
    } 
    ] 
} 

ダッシュボード上で動作しますが、私は、見つけるpouchdbを通してそれを使用する場合、それは以下のようなエラーがスローされます。

Error: unknown operator "0" - should be one of $eq, $lte, $lt, $gt, $gte, $exists, $ne, $in, $nin, $size, $mod, $regex, $elemMatch, $type or $all 
Stack trace: 

任意のアイデア?

答えて

0

私はCloudantデータベースとあなたの例のセレクタを使用し、私はエラーを取得できませんでした:

var PouchDB = require('pouchdb'); 
PouchDB.plugin(require('pouchdb-find')); 

var db = new PouchDB('https://reader.cloudant.com/aaa'); 
var s = {"selector":{"$and":[{"$and":[{"type":{"$eq":"user"}},{"$or":[{"user":{"$eq":"Elvis"}},{"first_name":{"$eq":"Elvis"}},{"middle_name":{"$eq":"Elvis"}},{"last_name":{"$eq":"Elvis"}}]}]},{"$not":{"$and":[{"type":{"$in":["follower","admin"]}},{"hive":{"$eq":"8049CF96-A4F2-D2BE-B014-AA4F72642F3F"}},{"user":{"$eq":"Elvis"}}]}}]},"fields":["_id","_rev"],"sort":[{"_id":"asc"}]}; 

db.find(s).then(function(d) { 
    console.log(d); 
}).catch(function(e){ 
    console.log(e); 
}); 

上記のコードを自分で試してみてください。参考までに、私の文書は次のようになります。

{ 
    "type": "user", 
    "first_name": "Elvis", 
    "middle_name": "", 
    "last_name": "Presley", 
    "user": "a", 
    "hive": "aaa" 
} 
+0

おかげグリン鳥、私は私のセレクタにキーワードでキーワードを追加し、最終的にあなたは上記が働い言ったように...しかし、今私が最初に間違っていた何を思ったんだけど場所。 –

関連する問題