【发布时间】:2016-06-27 08:23:43
【问题描述】:
这是我与 mongo 的第二天。我正在使用 django + mongoengine。 我的文章文档的结构是这样的:
class Article(Document):
title = StringField(required=True)
content = StringField(required=True)
comments = ListField(ReferenceField(Comment))
author = ReferenceField(MUser, required=False)
我可以从 django shell 设置作者的值,但是我找不到设置这个作者字段值的方法(这将是一个 MUser 对象)。 我试过这个:
db.article.update({
'title' : 'asdasdasdasd'
}, {
$set : {
'author' : db.m_user.find({
'email' : 'vsp@gmail.com'
})
}
})
但这做了一些我不明白的事情,当我做db.article.find() 时,我得到了这个结果:
{
"_id" : ObjectId("57153cc2aec9680bc327bedb"),
"title" : "asdasdasdasd",
"content" : "",
"author" : {
"_mongo" : {
"slaveOk" : false,
"host" : "127.0.0.1",
"defaultDB" : "",
"promptPrefix" : "",
"authStatus" : {
"authRequired" : true,
"replSetGetStatus" : false,
"isMaster" : true
},
"_readMode" : "commands",
"_writeMode" : "commands"
},
"_db" : {
"_mongo" : {
"slaveOk" : false,
"host" : "127.0.0.1",
"defaultDB" : "",
"promptPrefix" : "",
"authStatus" : {
"authRequired" : true,
"replSetGetStatus" : false,
"isMaster" : true
},
"_readMode" : "commands",
"_writeMode" : "commands"
},
"_name" : "mblog"
},
"_collection" : {
"_mongo" : {
"slaveOk" : false,
"host" : "127.0.0.1",
"defaultDB" : "",
"promptPrefix" : "",
"authStatus" : {
"authRequired" : true,
"replSetGetStatus" : false,
"isMaster" : true
},
"_readMode" : "commands",
"_writeMode" : "commands"
},
"_db" : {
"_mongo" : {
"slaveOk" : false,
"host" : "127.0.0.1",
"defaultDB" : "",
"promptPrefix" : "",
"authStatus" : {
"authRequired" : true,
"replSetGetStatus" : false,
"isMaster" : true
},
"_readMode" : "commands",
"_writeMode" : "commands"
},
"_name" : "mblog"
},
"_shortName" : "m_user",
"_fullName" : "mblog.m_user"
},
"_ns" : "mblog.m_user",
"_query" : {
"email" : "vsp@gmail.com"
},
"_fields" : null,
"_limit" : 0,
"_skip" : 0,
"_batchSize" : 0,
"_options" : 0,
"_cursor" : null,
"_numReturned" : 0,
"_special" : false
}
}
我设法从 django shell 设置了类似的情况,并且该记录清楚地显示了作者是什么,就像这样..
{
"_id" : ObjectId("57153ae9aec9680a8ae8f5a6"),
"title" : "sdd",
"content" : "eer",
"author" : ObjectId("576fff2daec96854d8bff581"),
"comments" : [ObjectId("5770282faec968640568f4ce")]
}
我如何做到这一点。谢谢
【问题讨论】:
标签: python django mongodb shell