Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当值是mongodb中其他对象的_id时,无法使用python eve使用字符串字段进行筛选_Python_Mongodb_Flask_Eve - Fatal编程技术网

当值是mongodb中其他对象的_id时,无法使用python eve使用字符串字段进行筛选

当值是mongodb中其他对象的_id时,无法使用python eve使用字符串字段进行筛选,python,mongodb,flask,eve,Python,Mongodb,Flask,Eve,在尝试使用python eve筛选集合时,我遇到了一个奇怪的行为,当我使用“where”参数筛选包含另一个文档的_id作为值的字段时,不会返回任何记录,如果我在字段值后添加额外的字母/数字,则返回的记录不会出现任何问题,将_id作为值的任何字段都会发生相同的行为。正如我在配置文件中看到的,调用db时,值似乎被转换为$oid,但我不知道为什么 有什么想法吗 谢谢 加斯顿 网址 返回数据 <resource href="/contacts" title="contacts"> &

在尝试使用python eve筛选集合时,我遇到了一个奇怪的行为,当我使用“where”参数筛选包含另一个文档的_id作为值的字段时,不会返回任何记录,如果我在字段值后添加额外的字母/数字,则返回的记录不会出现任何问题,将_id作为值的任何字段都会发生相同的行为。正如我在配置文件中看到的,调用db时,值似乎被转换为$oid,但我不知道为什么 有什么想法吗

谢谢 加斯顿

网址

返回数据

<resource href="/contacts" title="contacts">
    <link rel="parent" href="" title="home"/>
</resource>
MongoDB记录

{
"_id": {
    "$oid": "52cdc33ca54d75085073e7ef"
},
"timestamp": {
    "$date": "2014-01-08T21:29:32.603Z"
},
"task": "52cdad82a54d7506bc6f9a12",
"contact_uuid": "43acc81a-bdd2-42dd-bc0f-8279ddd497f4",
"started_by": "admin"
}
MongoDB配置文件输出

{
"op": "query",
 "ns": "callc.contacts",
 "query": {
"task": {
  "$oid": "52cdad82a54d7506bc6f9a16"
    }
  },
"ntoreturn": 10,
"ntoskip": 0,
"nscanned": 9,
"keyUpdates": 0,
"numYield": 0,
  "lockStats": {
"timeLockedMicros": {
      "r": 172,
  "w": 0
    },
"timeAcquiringMicros": {
  "r": 4,
  "w": 4
}
  },
  "nreturned": 0,
  "responseLength": 20,
  "millis": 0,
  "ts": {
    "$date": "2014-01-09T04:04:31.578Z"
  },
  "client": "XXX.17.153.XXX",
  "allUsers": [
    {
      "user": "xxxxx",
      "userSource": "callc"
    }
  ],
      "user": "xxxx@callc"
}
我使用的是运行Mongood 2.4.7的mongolab中托管的数据库

和virtualenv,具有以下“pip冻结”输出

  • Cerberus==0.4.0
  • Eve==0.2
  • 事件==0.2.0
  • 烧瓶==0.10.1
  • 烧瓶主体==0.4.0
  • 烧瓶PyMongo==0.3.0
  • 烧瓶上载==0.1.3
  • 烧瓶WTF==0.9.3
  • 金甲2==2.7
  • MarkupSafe==0.18
  • WTForms==1.0.5
  • Werkzeug==0.9.4
  • 闪烁=1.3
  • 摇瓶发动机==0.7.0
  • 危险==0.22
  • mongoengine==0.8.6
  • passlib==1.6.1
  • py==1.4.18
  • pymongo==2.6.3
  • pytest==2.4.2
  • 请求==2.1.0
  • simplejson==3.3.0
  • wsgiref==0.1.2

最新的开发版本支持
查询\u objectid\u as\u string
。对于“任务”字段,将其设置为
True
,您应该会没事。有关详细信息,请参阅。

我已移动到最新的开发版本,并在配置中添加了“query\u objectid\u as\u string”:True选项,解决了此问题
{
"_id": {
    "$oid": "52cdc33ca54d75085073e7ef"
},
"timestamp": {
    "$date": "2014-01-08T21:29:32.603Z"
},
"task": "52cdad82a54d7506bc6f9a12",
"contact_uuid": "43acc81a-bdd2-42dd-bc0f-8279ddd497f4",
"started_by": "admin"
}
{
"op": "query",
 "ns": "callc.contacts",
 "query": {
"task": {
  "$oid": "52cdad82a54d7506bc6f9a16"
    }
  },
"ntoreturn": 10,
"ntoskip": 0,
"nscanned": 9,
"keyUpdates": 0,
"numYield": 0,
  "lockStats": {
"timeLockedMicros": {
      "r": 172,
  "w": 0
    },
"timeAcquiringMicros": {
  "r": 4,
  "w": 4
}
  },
  "nreturned": 0,
  "responseLength": 20,
  "millis": 0,
  "ts": {
    "$date": "2014-01-09T04:04:31.578Z"
  },
  "client": "XXX.17.153.XXX",
  "allUsers": [
    {
      "user": "xxxxx",
      "userSource": "callc"
    }
  ],
      "user": "xxxx@callc"
}