如何在mongodb shell中设置mongoengine的ReferenceField值?

2024-09-26 04:46:20 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我和蒙戈的第二天。我和django+mongoengine一起工作。 我的文章文档结构如下:

class Article(Document):
    title = StringField(required=True)
    content = StringField(required=True)
    comments = ListField(ReferenceField(Comment))
    author = ReferenceField(MUser, required=False)

我可以从djangoshell设置author的值,但我找不到一种方法来设置这个author字段值(它将是一个MUser对象)。 我试过了:

^{pr2}$

但是这做了一些我没有得到的结果,当我这样做的时候,我得到了这个结果:

^{3}$

我设法在djangoshell中设置了类似的情况,这个记录清楚地显示了作者是谁,像这样。。

{
    "_id" : ObjectId("57153ae9aec9680a8ae8f5a6"),
    "title" : "sdd",
    "content" : "eer",
    "author" : ObjectId("576fff2daec96854d8bff581"),
    "comments" : [ObjectId("5770282faec968640568f4ce")]
}

我如何实现这一点。谢谢


Tags: django文档truetitle文章requiredcontentcomments
1条回答
网友
1楼 · 发布于 2024-09-26 04:46:20

在mongoshell中,我们不能在类似os-SQL的语法中使用子查询。在

为了解决这个问题,我们可以:

var author = db.m_user.find({
        'email' : 'vsp@gmail.com'
    }).limit(1).toArray()

    db.article.update({
        'title' : 'asdasdasdasd'
    }, {
        $set : {
            'author' : author[0]._id
        }
    })

欢迎发表意见!在

相关问题 更多 >