小编Seb*_*btm的帖子

仅检索MongoDB集合中对象数组中的查询元素

假设我的收藏中有以下文件:

{  
   "_id":ObjectId("562e7c594c12942f08fe4192"),
   "shapes":[  
      {  
         "shape":"square",
         "color":"blue"
      },
      {  
         "shape":"circle",
         "color":"red"
      }
   ]
},
{  
   "_id":ObjectId("562e7c594c12942f08fe4193"),
   "shapes":[  
      {  
         "shape":"square",
         "color":"black"
      },
      {  
         "shape":"circle",
         "color":"green"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

查询:

db.test.find({"shapes.color": "red"}, {"shapes.color": 1})
Run Code Online (Sandbox Code Playgroud)

要么

db.test.find({shapes: {"$elemMatch": {color: "red"}}}, {"shapes.color": 1})
Run Code Online (Sandbox Code Playgroud)

返回匹配的文档(文档1),但始终包含所有数组项shapes:

{ "shapes": 
  [
    {"shape": "square", "color": "blue"},
    {"shape": "circle", "color": "red"}
  ] 
}
Run Code Online (Sandbox Code Playgroud)

但是,我想仅使用包含以下内容的数组来获取文档(文档1)color=red:

{ "shapes": 
  [
    {"shape": "circle", "color": "red"}
  ] 
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

projection mongodb mongodb-query aggregation-framework

356
推荐指数
11
解决办法
26万
查看次数

C++将字符串转换为十六进制,反之亦然

在C++中将字符串转换为十六进制的最佳方法是什么?

例:

  • "Hello World"十六进制格式的字符串:48656C6C6F20576F726C64
  • 从十六进制48656C6C6F20576F726C64到字符串:"Hello World"

c++ string hex

56
推荐指数
8
解决办法
18万
查看次数

QTreeView中间列填充宽度空间而不是最后一列

怎么做到这一点:

中间栏填充空间

我已经尝试过这种方式:

view->header()->setResizeMode(INDEX_COLUMN_SKU, QHeaderView::Interactive);
view->header()->setResizeMode(INDEX_COLUMN_NAME, QHeaderView::Stretch);
view->header()->setResizeMode(INDEX_COLUMN_QUANTITY, QHeaderView::Interactive);
view->header()->setResizeMode(INDEX_COLUMN_PRICE, QHeaderView::Interactive);
Run Code Online (Sandbox Code Playgroud)

但不起作用.

size qt header qtreeview

22
推荐指数
1
解决办法
1万
查看次数

编译为本机代码并包含电池的编程语言

什么是编译为本机代码的编程语言,它们提供了一个全面的库?

包含网络,文件IO,RegEx,数据库,图形,多媒体,Win32 API绑定,文件压缩等功能的库.

code-generation programming-languages native

13
推荐指数
3
解决办法
1万
查看次数

Rails 3:定义插件gem依赖

我写了一个插件,需要宝石作为依赖.

我在哪里定义这种依赖?

我试图在vendor/plugins/my_plugin /中创建一个Gemfile,但是bundle install找不到这个文件.

gem plugins dependencies ruby-on-rails

10
推荐指数
1
解决办法
5038
查看次数

D(Tango)读取所有标准输入并将其分配给字符串

在D语言中我如何读取所有标准输入并将其分配给字符串(使用Tango库)?

string stdin d tango

5
推荐指数
1
解决办法
617
查看次数

C++ printf std :: vector

我如何在C++中做这样的事情:

void my_print(format_string) {
   vector<string> data;
   //Fills vector
   printf(format_string, data);
}

my_print("%1$s - %2$s - %3$s");
my_print("%3$s - %2$s);
Run Code Online (Sandbox Code Playgroud)

我之前没有解释过.格式字符串由应用程序用户输入.

在C#中,这有效:

void my_print(format_string) {
 List<string> data = new List<string>();
 //Fills list
 Console.WriteLine(format_string, data.ToArray);
}

my_print("{0} - {1} - {2}");
my_print("{2} - {1}");
Run Code Online (Sandbox Code Playgroud)

c++ printf vector

5
推荐指数
4
解决办法
3万
查看次数

使用Qt 4创建桌面小部件(如Yahoo Widgets或Google Gadgets)

如何使用Qt 4创建一个窗口,该窗口仍然作为窗口小部件锚定在桌面上?(例如Yahoo Widgets或Google Gadgets).

我打算将窗口小部件的相同特性赋予普通窗口:

  1. 去掉边缘(容易做到)
  2. 窗户一定不能动(怎么样?)
  3. 必须仅在其他窗口最小化时显示(如何?)

c++ desktop qt4 widget

4
推荐指数
1
解决办法
2672
查看次数

C++ printf:来自命令行参数的换行符(\n)

打印格式字符串如何作为参数传递?

example.cpp:

#include <iostream> 
int main(int ac, char* av[]) 
{
     printf(av[1],"anything");
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

尝试:

example.exe "print this\non newline"
Run Code Online (Sandbox Code Playgroud)

输出是:

print this\non newline
Run Code Online (Sandbox Code Playgroud)

相反,我想:

print this
on newline
Run Code Online (Sandbox Code Playgroud)

c++ string formatting printf newline

2
推荐指数
1
解决办法
1万
查看次数