有一个用户集合
{ "_id" : ObjectId("5a0d45ca8af3a91847b7cf95"), "updatedAt" : ISODate("2017-11-16T09:34:14.651Z"), "createdAt" : ISODate("2017-11-16T08:01:14.119Z"), "name" : "John", "email" : "test1@gmail.com", "groupsFavorite" : [ ObjectId("5a0d45db8af3a91847b7cf96") ], "groups" : [ ObjectId("5a0d45db8af3a91847b7cf96"), ObjectId("5a0d45e18af3a91847b7cf97") ], "__v" : 3 }
/* 1 */ { "_id" : ObjectId("5a0d45db8af3a91847b7cf96"), "updatedAt" : ISODate("2017-11-16T08:01:31.815Z"), "createdAt" : ISODate("2017-11-16T08:01:31.815Z"), "userId" : ObjectId("5a0d45ca8af3a91847b7cf95"), "title" : "New title", "slug" : "new-title-1", "description" : "Lorem", "__v" : 0 } /* 2 */ { "_id" : ObjectId("5a0d45e18af3a91847b7cf97"), "updatedAt" : ISODate("2017-11-16T08:01:37.005Z"), "createdAt" : ISODate("2017-11-16T08:01:37.005Z"), "userId" : ObjectId("5a0d45ca8af3a91847b7cf95"), "title" : "New title", "slug" : "new-title-2", "description" : "Lorem", "__v" : 0 } /* 3 */ { "_id" : ObjectId("5a0d5cb0cd59342da943d55a"), "updatedAt" : ISODate("2017-11-16T09:38:56.912Z"), "createdAt" : ISODate("2017-11-16T09:38:56.912Z"), "userId" : ObjectId("5a0d5c48cd59342da943d559"), "title" : "New title", "slug" : "new-title-3", "description" : "Lorem", "__v" : 0 }
{ "_id" :"5a0d45db8af3a91847b7cf96", "updatedAt" : "2017-11-16T08:01:31.815Z", "createdAt" : "2017-11-16T08:01:31.815Z", "userId" : "5a0d45ca8af3a91847b7cf95", "title" : "New title", "slug" : "new-title-1", "description" : "Lorem", "favorite": "true" }, { "_id" : "5a0d45e18af3a91847b7cf97", "updatedAt" : "2017-11-16T08:01:37.005Z", "createdAt" : "2017-11-16T08:01:37.005Z", "userId" : "5a0d45ca8af3a91847b7cf95", "title" : "New title", "slug" : "new-title-2", "description" : "Lorem", "favorite": "false" }, { "_id" : "5a0d5cb0cd59342da943d55a", "updatedAt" : "2017-11-16T09:38:56.912Z", "createdAt" : "2017-11-16T09:38:56.912Z", "userId" : "5a0d5c48cd59342da943d559", "title" : "New title", "slug" : "new-title-3", "description" : "Lorem", "favorite": "false" }
可以使用$lookup
运算符检查“user”集合中的_id
和userid
字段。也可以使用$eq
运算符来确定它是否在。
db.getCollection('Groups').aggregate([
{
$lookup:
{
from: "User",
localField: "_id",
foreignField: "groupsFavorite",
as: "FavoriteByGrp"
}
}
,{
$lookup:
{
from: "User",
localField: "userId",
foreignField: "_id",
as: "FavoriteByUsr"
}
}
,{
"$project":
{
_id:1,
updatedAt:1,
createdAt:1,
userId:1,
title:1,
slug:1,
description:1,
favorite:
{
"$cond":
{
if: { "$eq": [ "$FavoriteByGrp._id", "$FavoriteByUsr._id" ] },
then: "true",
else: "false"
}
}
}
}
])
结果:
/* 1 */
{
"_id" : ObjectId("5a0d45db8af3a91847b7cf96"),
"updatedAt" : ISODate("2017-11-16T08:01:31.815Z"),
"createdAt" : ISODate("2017-11-16T08:01:31.815Z"),
"userId" : ObjectId("5a0d45ca8af3a91847b7cf95"),
"title" : "New title",
"slug" : "new-title-1",
"description" : "Lorem",
"favorite" : "true"
}
/* 2 */
{
"_id" : ObjectId("5a0d45e18af3a91847b7cf97"),
"updatedAt" : ISODate("2017-11-16T08:01:37.005Z"),
"createdAt" : ISODate("2017-11-16T08:01:37.005Z"),
"userId" : ObjectId("5a0d45ca8af3a91847b7cf95"),
"title" : "New title",
"slug" : "new-title-2",
"description" : "Lorem",
"favorite" : "false"
}
/* 3 */
{
"_id" : ObjectId("5a0d5cb0cd59342da943d55a"),
"updatedAt" : ISODate("2017-11-16T09:38:56.912Z"),
"createdAt" : ISODate("2017-11-16T09:38:56.912Z"),
"userId" : ObjectId("5a0d5c48cd59342da943d559"),
"title" : "New title",
"slug" : "new-title-3",
"description" : "Lorem",
"favorite" : "false"
}
问题内容: 假设我有一个处理待办事项清单的应用程序。清单中已完成和未完成的项目。现在,我想向列表对象添加两个虚拟属性。列表中已完成和未完成项目的计数。我还需要将这些显示在json输出中。 我的模型中有两种方法可以提取未完成/已完成的项目: 那么,如何在json输出中获得这两种方法的计数? 我正在使用Rails 3.1 问题答案: Rails中对象的序列化包括两个步骤: 首先,调用将对象转换为简化的
问题内容: 我正在运行一个基于Java Spring MVC的Web应用程序。它还基于Hybris平台。 现在,已经实现了有关身份验证和授权的基本功能。意味着我们确实有用于会话,有效的用户系统等的过滤器。 但是,我们目前还没有针对诸如XSS和其他可能的攻击之类的安全措施。XSS可能是最大的问题,因为它是最常见的攻击方式。 现在,我不知道……明智地采取什么步骤?我环顾四周,我发现存在像XSS-Fil
问题内容: 我将json字符串存储到mysql中的文本字段中。插入后,我想更新我的json字符串,并使用jackson json将mysql行ID添加到其中。 我有一个Json格式的Java字符串 我希望添加另一个K / V,而无需编写代码行。 终于有了这个: 我可以将String转换为JsonNode: 想要做这样的事情 然后在mysql中使用新的json字符串在我的文本字段中更新 我做不到 我
我将json字符串存储到MySQL中的文本字段中。插入之后,我希望更新我的json字符串,并使用jackson json将mysql行id添加到其中。 我有一个Json格式的java字符串
你能帮我解决这个问题吗? 我在类<code>单元格</code>中创建按钮,并向该按钮添加一些默认操作。 在< code>Game类中,我想给这个按钮添加额外的动作,但我也想保留默认动作。 我知道新操作覆盖了以前的操作。因此,如果我单击按钮,它只会打印。 是否可以向按钮添加新操作并保留以前的连接?
问题内容: 我正在使用网络上的标准示例(http://www.20seven.org/journal/2008/11/pdf-generation-with-pisa-in-django.html)将django视图/模板转换为PDF。 是否有一种“简便”的方式将图像(来自URL或服务器上的引用)包括在模板中,以便它们显示在PDF上? 问题答案: 我得到了图像。代码如下: