2017-08-04 17 views
1

作成したPouchDBインデックスで$ gteクエリを実行しようとしています。クエリはエラーではありませんが、句に一致するドキュメントが必要な場合は空の配列を返します。アイデアは、過去30日間のタイムスタンプを持つすべてのドキュメントを取得することです。その値を格納するプロパティは最上位にはなく、metaプロパティの一部です。例えば。Pouchdb-find過去30日間のドキュメント

私は、インデックスが正常に以下を使用して作成し
{ 
    _id: "76e7f205-b8c3-4cc6-abfb-77c98ca3a0d4", 
    _rev: "1-47f49534aa364f5c654b9574fa085005", 
    ... 
    meta: { 
     created: 1501841768486 
     createdBy: "[email protected]" 
    } 
} 

recordingsDB.createIndex({ 
    name: 'recent', 
    ddoc: 'recent', 
    index: { 
     fields: ['meta.created'] 
    } 
}); 

私は、使用してそれを照会:私はサブプロパティを照会するため、両方の構文スタイルともない仕事をしようとしている

let thirtyDaysAgo = moment(Date.now()).subtract(30, 'days').format('x'); 

//selector: { 'meta.created': { $gte: thirtyDaysAgo } }, 

return recordingsDB.find({ 
    selector: { meta: { created: { $gte: thirtyDaysAgo } } }, 
    sort: [{'meta.created': 'desc'}], 
    use_index: 'recent' 
}).catch(function (err) { 
    console.log(err); 
}); 

を。クエリは実際には失敗せず、エラーを引き起こすこともありません。そのクエリと一致する必要があるドキュメントがあることがわかったら空の配列を返します。

答えて

1

thirtyDaysAgoを​​で囲む必要があります。作成日は数字ですが、文字列です。 couchdbと同じ基本的なインデックス標準を使用しているため、pouchdb-findには型の違いがあり、これらの型はcollation orderに基づいています。

+0

私はそれを見つけられなかったとは思わない!ありがとう – Mark

関連する問題