我在mongodb中有以下列表。
> db.article.find().pretty()
{
"_id" : ObjectId("5bebcfbb1b48d9974aac78ee"),
"no" : 40,
"subject" : "string",
"content" : "string",
"userid" : "string",
"comments" : [
{
"no" : 1,
"content" : "First content",
"userid" : "john",
"parent" : null,
"seq" : 12,
"created_at" : ISODate("2018-11-14T16:33:01.943Z")
},
{
"no" : 2,
"content" : "Second",
"userid" : "doe",
"parent" : null,
"seq" : 25,
"created_at" : ISODate("2018-11-14T16:33:01.943Z")
},
}
现在我在python应用程序中使用mongoengine
。
如果我想获取注释的编号:2的seq
字段值(在此代码中为25),如何处理查询?
我找到了与之相关的文档(http://docs.mongoengine.org/guide/querying.html),但我不知道它与我想要的完全相同。
这里有解决方案吗?
谢谢!
答案 0 :(得分:1)
db.getCollection('article').aggregate([
{"$project":{"comments.seq":1,"comments.no":1,"_id":0}},
{"$unwind":"$comments"},
{"$match":{"comments.no":NumberInt(2)}},
{"$project":{"comments.seq":1}}
])
您可以参考它。