我试图了解"继续"的工作原理.我理解了关键字的概念,但是当我运行不同的程序时,它的工作方式不同: - /让我向您展示一些示例:
如果我运行这个程序:
int j = 0;
int i = 0;
LABEL1: for (; i < 3; i++) {
if (true)
continue;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的价值将是3.让我们添加一个外循环:
int j = 0;
int i = 0;
LABEL2: for (; j < 3; j++) {
LABEL1: for (; i < 3; i++) {
if (true)
continue LABEL2;
}
}
Run Code Online (Sandbox Code Playgroud)
我的价值将是... 0 !! 我不明白为什么如果继续使用带有转到外部循环的标签,我不会增加.有人能解释一下为什么吗?你有一些棘手的东西吗?还是做了一段时间?
我非常感谢您提供的任何帮助.
我遇到的情况是,我有一个用户架构,其中包含一个名为“用户名”的唯一字段。同时,mongo自动创建自己的唯一键“_id”。
我注意到,对于我的很多模式,我需要一组“用户名”和“ids”。有时这是相当多余的,所以我的问题是:
通过“_id”查找是否比查找“用户名”字段(假设是 10 个字符的字符串)更快?如果它们相同,是否可以使用我的唯一标识符 username 作为 _id 的值?
我的问题是:我的结构类似于:
{
id: 1,
participants: [
{ name: "joe", status: 0 },
{ name: "james", status: 2}
],
content: "mongomongo"
}
{
id: 2,
participants: [
{ name: "joe", status: 1 },
{ name: "jordan", status: 3}
],
content: "dongodongo"
}
我想要做的是运行一个与此几乎相同的查询:
db.find({ '_id': { $in: someArray}}, { participants: {$elemMatch: {'name': someName }}}
Run Code Online (Sandbox Code Playgroud)
我会为$ in指定一个对象ID数组,然后我会提供一个用户名.会发生什么是它会给我两个对象,但参与者数组只有$ elemMatch找到的条目:
{
id: 1,
participants: [
{ name: "joe", status: 0 }
]
}
{
id: 2,
participants: [
{ name: "joe", status: 1 } …