我有一个json输入,如:
{
"Wells": {
"mywell 1": {
"X": 0,
"Y": 0,
"Tags": {
"READING": [
{
"Time": "11/13/2017 9:54:59 AM",
"Value": 959.9707
}
]
}
}
},
"Errors": []
}
我通过pymongo加载到mongodb。我正在尝试为Wells中的第一个项目设置索引。所以在这种情况下,它将是“mywell 1”
我想也许
db.log_events.ensureIndex( { Wells.[0]: 1 }, { unique: true } )
或类似的东西,所以每个井只能输入一次。有谁知道如何将索引设置为仅第一项?
答案 0 :(得分:0)
您只能索引静态文档密钥,因此无法按照您的要求进行操作。
相反,更改文档的架构,使Wells
是一个数组(它当前是一个对象),并将动态"mywell 1"
键移动到数组元素的name
属性中:
"Wells": [
{
"name": "mywell 1",
"X": 0,
"Y": 0,
"Tags": {
"READING": [
{
"Time": "11/13/2017 9:54:59 AM",
"Value": 959.9707
}
]
}
}]
在重新构建文档后,您现在可以在Wells.name
上添加索引,从而可以通过井名有效地进行查询。
db.log_events.ensureIndex({ 'Wells.name': 1 })