经过一些"匹配" db.collection.aggregate中的步骤我得到了
{_id: 1, field1: "a", field2: ["1.1.1", "1.1.2", "1.1.3", "1.1.4"]}
{_id: 2, field1: "b", field2: [ "1.1.2", "1.1.4"]}
{_id: 3, field1: "c", field2: ["1.1.1", "1.1.2" ]}
{_id: 4, field1: "d", field2: [ "1.1.4"]}
{_id: 5, field1: "e", field2: [ "1.1.3" ]}
//我预先格式化了
我想要应用另一条规则(我认为它将是" group"规则)汇总以获取所有文件" field2"不包含" 1.1.1"或" 1.1.4"。所以我需要没有" 1.1.1"或" 1.1.4"或(" 1.1.1" AND" 1.1.4")。
我想得到这样的东西:
{_id: 5, field1: "e", field2: [ "1.1.3" ]}
所以,我有field2,它是每个文档中的数组,我想获得给定数组中没有单个元素的所有文档(例如[" 1.1.1",&#34] ; 1.1.4"。])
P.S。我需要这个用于"单个语句聚合命令"。没有额外的JS接受。
UPD
@ blakes-seven,tnx
我的错误是我用过
{ "$match": { "field2": { "$elemMatch": { "$nin": ["1.1.1","1.1.4"] } } } }
但正确的事情就是使用
{ "$match": { "field2": { "$nin": ["1.1.1","1.1.4"] } } }
不要高估$ elemMatch:)
答案 0 :(得分:1)
func (c *MyController) PrintPDF() {
pdf := gofpdf.New("", "", "", "")
pdf.AddPage()
pdf.Text(10, 20, "Circles")
var b bytes.Buffer
w := bufio.NewWriter(&b)
pdf.Output(w)
pdf.Close()
w.Flush()
c.Ctx.Output.ContentType("application/pdf")
c.Ctx.Output.Body(b.bytes())
}
在你进入管道之前,甚至有更好的方法来获得这个结果,但由于你的问题没有解释,所以没有办法告诉你。