rol*_*lfn 4 arrays couchdb selector couchdb-mango
我的文档有这样的结构:
{
"Calibration": {
"Presettings": {
"Date": [
{
"Value": "2016-09-02 10:11",
"Type": "generated"
},
{
"Value": "2016-09-05",
"Type": "schedule",
"Duration": "5"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何定义查询对象的选择器部分以获取日期(值)小于或等于给定日期的所有文档Type=='generated'?
Ale*_*ôté 13
首先,您需要创建索引.我建议你在上面创建一个索引Calibration.Presettings.Date field.
您可以使用以下JSON对象来创建它:
{
"index": {
"fields": [
"_id",
"Calibration.Presettings.Date.[].Type"
]
},
"type": "json"
}
Run Code Online (Sandbox Code Playgroud)
所以选择器将是这样的:
{
"selector": {
"Calibration.Presettings.Date": {
"$elemMatch": {
"$and": [
{
"Type": "generated"
},
{
"Value": {
"$gte": "2016-09-01"
}
}
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我们在字段Calibration.Pressettings.Date上执行查询,这是一个数组.由于它是一个数组,我们必须使用$ elemMatch运算符.
然后,我们有一个$和条件的值和类型.
该类型的的日期必须产生.可以使用$ eq运算符或只使用这个简单的语法: {"field":"value"}.
最后,Date`s Value必须大于或等于X date.我们可以使用$ gte运算符.
| 归档时间: |
|
| 查看次数: |
2887 次 |
| 最近记录: |