首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >马达返回None

马达返回None
EN

Stack Overflow用户
提问于 2013-05-05 12:58:49
回答 2查看 283关注 0票数 1

我正在使用马达驱动程序连接Mongo DB。下面是向集合中插入数据的代码

代码语言:javascript
复制
  client = motor.MotorClient('mongodb://localhost:27017').open_sync()
  conn = client['database']['collection']
  result = conn.insert({'foo': 'bar'}) 
  print 'result:', result

insert语句始终返回None。这不是Tornado应用程序。马达只能与龙卷风一起使用吗?如果不是,为什么插入返回none?

EN

回答 2

Stack Overflow用户

发布于 2013-05-05 23:49:13

你就像使用pymongo一样使用引擎。但是马达是异步的:这意味着当你的print被执行时,db请求可能还没有完成。此外,电机插入不返回任何内容,您需要使用回调函数作为其第二个参数。请参阅the differences between pymongo and motorthe motor tutorial on how to insert a document

在您的情况下,解决此问题的好方法是:

代码语言:javascript
复制
client = motor.MotorClient('mongodb://localhost:27017').open_sync()
conn = client['database']['collection']
result = conn.insert({'foo': 'bar'}, callback=once_done) 

def once_done(result, error):
    if error: print 'error:', error
    else:
        print 'result:', result
票数 2
EN

Stack Overflow用户

发布于 2013-05-05 13:16:08

我猜,WriteConcern不是从客户机驱动程序中设置的。

如果您将其设置为safe=true,那么您将获得插入操作的状态。否则,使用safe=false时,插入操作将被触发并忘记。

您可以尝试:

代码语言:javascript
复制
motor.MotorClient('mongodb://localhost:27017/?safe=true')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16381549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档