我的文档结构如下:
{
"_id": "6ed3d427045228dce9e3b38d111cb046",
"_rev": "1-952bddae5572fbf2b0ce4a165c19c98b",
"type": "USER",
"name": "ABC",
"email": "abc@gmail.com",
"phone": "024578963"
}
这是NodeJS应用,我正在使用couchdb-nano
。为了进行排序(例如获取用于分页的数据),我为上述字段(name
,email
,phone
)创建了一个索引。
已将一个名为created_date
的新字段引入文档,并且所有最新文档均包含created_date
,如下所示:
{
"_id": "6ed3d427045228dce9e3b38d111cb046",
"_rev": "1-952bddae5572fbf2b0ce4a165c19c98b",
"type": "USER",
"name": "ABC",
"email": "abc@gmail.com",
"phone": "024578963",
"created_date": 1570528394252
}
因此,自某个时间以来所有最新文档都包含created_date
,而旧文档在文档中没有created_date
字段。
[当我尝试按以下方式排序时:
const q = {
selector : {
type: { "$eq": "USER" },
},
fields : ['name', 'email', 'phone', 'created_date'],
limit: 100,
skip: 10,
sort : [{"created_date":"asc"}]
};
await prodresdb.find(q);
我将无法获得不包含created_date
的旧文档。这是因为created_date
索引不会索引旧文档,因为那些旧文档没有created_date
字段。
我确信其他人也有这个问题,需要弄清楚...如何克服这个问题?有任何CouchDB方法可以解决此问题吗?此类问题的最佳实践是什么。
我的文档结构如下:{“ _id”:“ 6ed3d427045228dce9e3b38d111cb046”,“ _rev”:“ 1-952bddae5572fbf2b0ce4a165c19c98b”,“ type”:“ USER”,“ name”:“ ABC”,“ email”:“ abc@gmail.com“,” ...