使用聚合,我使用golang加入了两个mongodb集合。结果如下所示:-
输出:-
{
"response": {
"code": 1,
"api_status": 1,
"message": "Success",
"total_record": [
{
"_id": 1,
"author_name": "mohit",
"category": 232,
"content": "This is the content",
"date_time": 1524632713,
"excerpt": "This is a short text",
"image": "pic.jpg",
"resultField": [
{
"_id": 6,
"comment": "this is a least comment",
"comment_on": 1524644601,
"email": "puneet@bookingkoala.com",
"name": "puneet",
"post_id": 1,
"reply_to": 1524644601,
"status": 1
},
{
"_id": 7,
"comment": "this is a least comment",
"comment_on": 1524647808,
"email": "puneet@bookingkoala.com",
"name": "puneet",
"post_id": 1,
"reply_to": 1524647808,
"status": 1
}
],
"status": 0,
"tags": "this",
"title": "how to do the code"
},
{
"_id": 2,
"author_name": "mohit",
"category": 232,
"content": "This is the content",
"date_time": 1524632713,
"excerpt": "This is a short text",
"image": "pic.jpg",
"resultField": [
{
"_id": 8,
"comment": "this is a least comment",
"comment_on": 1524648059,
"email": "puneet@bookingkoala.com",
"name": "puneet",
"post_id": 2,
"reply_to": 1524648059,
"status": 1
}
],
"status": 0,
"tags": "this",
"title": "how to do the code"
},
{
"_id": 3,
"author_name": "puneet",
"category": 2,
"content": "this is content",
"date_time": 1524641086,
"excerpt": "this is excerpt",
"image": "pic.jpg",
"resultField": [],
"status": 1,
"tags": "go",
"title": "how to do the code"
}
]
}
}
此 输出 由以下golang代码获取:-
mongoSession := config.ConnectDb()
collection := mongoSession.DB(config.Database).C(config.BlogCollection)
pipeline := []bson.M{
bson.M{"$match": bson.M{}},
bson.M{"$lookup": bson.M{"from" : "comment", "localField" : "_id", "foreignField": "post_id","as": "resultField" }},
}
fmt.Println(pipeline)
pipe := collection.Pipe(pipeline)
resp := []bson.M{}
err = pipe.All(&resp)
if err != nil {
fmt.Println("Errored: %#v \n", err)
}
fmt.Println(resp)
if err != nil {
response = ResponseControllerList{
config.FailureCode,
config.FailureFlag,
config.FailureMsg,
nil,
nil,
}
} else {
response = ResponseControllerList{
config.SuccessFlag,
config.SuccessFlag,
config.SuccessMsg,
nil,
resp,
}
}
问题是: -我只需要count
的data
不是
了data
。在上面显示的输出中意味着在resultField
其中显示数据,但是我只需要count
像这样的值:-
"resultField":[2]
但它正在显示数据。如何获得输出中数据的计数值。先感谢您。
因此,您的汇总实际上返回comment
了该resultField
字段中的所有文档,该文档隐含了结果的数量,您可以使用内置len()
函数在Go中检查其中的长度。
由于您只需要长度(comment
文档数),这就是为什么只想检索此数组的大小的原因。为此,您可以使用$addFields
舞台resultField
用一个数字替换该阵列的长度,以该阵列的长度。
pipe := c.Pipe([]bson.M{
{
"$lookup": bson.M{
"from": "comment",
"localField": "_id",
"foreignField": "post_id",
"as": "resultField",
},
},
{
"$addFields": bson.M{
"resultField": bson.M{"$size": "$resultField"},
},
},
})
请注意,该$addFields
阶段等效$project
于在输入文档中显式指定所有现有字段并添加新字段的阶段。仅从MongoDB 3.4版开始可用。
在Mongodb中,我想获取那些没有任何订单的产品的数据。 集合:master_product_details、master_order_details 我使用的是普通的$lookup查询,它给出了与Order匹配或不匹配的所有记录。 还有其他方法可以得到结果吗?
请帮我找到一个合适的解决办法 收集被存储的用户详细信息app_users 用户预订是存储预订的集合 我正在使用的查找(左连接)查询是 我想从用户集合中选择具有相应用户详细信息的预订,但返回为空,因为mongodb正在将字符串与objectId进行比较,所以是否有方法执行此任务?
问题内容: 我是mongodb的新手,并在下面的文档中使用mongoose进行练习,并且遇到了一个非常令人困惑的问题。 我有用户架构 评论模式 和模型 然后我做 但是我在查询中得到空的共同点。根据数据库中的数据,我不应该得到这个结果。搜索后,我仍然找不到错误所在。 最后但并非最不重要的一点是,我需要使用方法,因此我必须在参考文件上使用,是否有意义? 问题答案: $ lookup中的字段是集合名称,
wend尝试此查询,返回查找为空 返回json 我尝试了这篇文章,但没有发生MongoDB将项目字符串聚合到ObjectId和这个MongoDB$lookup在PHP中使用_id作为foreignField 更新 这是文档“用户”
问题内容: 我正在寻找如何使用golang从Kubernetes集群中的Pod获取日志的解决方案。我看过“ https://github.com/kubernetes/client- go ”和“ https://godoc.org/sigs.k8s.io/controller- runtime/pkg/client ”,但听不懂如何将它们用于此目的。除了日志外,我在获取K8S中的Pod或任何其他
问题内容: 它在下面被称为 我的理解是,我们首先锁定接收器s(这是Stat类型),然后如果计数器确实存在,则将其添加。 问题: Q1:为什么我们需要锁定它?甚至是什么意思? 问题2:-这是否会锁定整个接收器或仅锁定Stat类型的counters字段? 问题3:-这是否会锁定平均值字段? 问题4:为什么要使用?我以为通道是处理Golang中并发的首选方法? 问题5:这是什么。为什么在这种情况下我们需