小编use*_*208的帖子

如何使用Java mongodb驱动程序中的"_id"字段查询文档?

我试图通过搜索"_id"键在MongoDB中查找文档.我的文件看起来像这样 -

{
  "_id" : ObjectId("4f693d40e4b04cde19f17205"),
  "hostname" : "hostnameGoesHere",
  "OSType" : "OSTypeGoesHere"
}
Run Code Online (Sandbox Code Playgroud)

我试图搜索这份文件 -

ObjectId id= new ObjectId("4f693d40e4b04cde19f17205");        
BasicDBObject obj = new BasicDBObject();        
obj.append("_id", id);        
BasicDBObject query = new BasicDBObject();        
query.putAll(query);
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误 -

error: reference to putAll is ambiguous, both method putAll(Map) in BasicBSONObject and method putAll(BSONObject) in BasicBSONObject match
        query.putAll(query);
Run Code Online (Sandbox Code Playgroud)

BasicDBObject的append方法支持(String Key,Value),如果我将"_id"作为String传递给此方法,则不匹配任何文档.

所以我的问题是如何通过"_id"?

java mongodb mongodb-java

34
推荐指数
4
解决办法
6万
查看次数

MongoDB - socket的权限被拒绝:/tmp/mongodb-27017.sock

我在Ubuntu 10.04 LTS上关闭了MongoDB.现在当我以root身份登录并通过服务mongodb start运行Mongodb时,我得到以下错误 -

Mon Dec 12 13:53:15 [initandlisten] ERROR: listen(): bind() failed errno:13 Permission denied for socket: /tmp/mongodb-27017.sock
Run Code Online (Sandbox Code Playgroud)

当我通过root手动运行MongoDB时,它运行正常.

我可以确认没有/tmp/mongodb-27017.sock文件

root@devbox:~# ll /tmp/
total 16
drwxr-xr-x  4 root root 4096 2011-12-12 13:53 ./
drwxr-xr-x 25 root root 4096 2011-12-11 13:06 ../
drwxrwxrwt  2 root root 4096 2011-12-12 13:01 .ICE-unix/
drwxrwxrwt  2 root root 4096 2011-12-12 13:01 .X11-unix/
Run Code Online (Sandbox Code Playgroud)

我从哪里开始排除故障?

sockets file-permissions upstart mongodb

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

如何在makefile中指定RPATH?

我正在尝试在二进制文件中指定rpath.我的makefile看起来像这样 -

CC=gcc 
CFLAGS=-Wall
LDFLAGS= -rpath='../libs/'
main: main.c  
    gcc -o main main.c

clean:
    rm -f main main.o 
Run Code Online (Sandbox Code Playgroud)

但是当我使用命令查询rpath时,我readelf -a ./main | grep rpath没有得到任何东西我已经尝试指定rpath,LDFLAGS= "-rpath=../libs/"但即使这似乎也不起作用.

有人可以发一个例子来说明我应该如何在makefile中指定rpath?

GCC和ld版本是 -

gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
GNU ld (GNU Binutils for Ubuntu) 2.21.0.20110327
Run Code Online (Sandbox Code Playgroud)

makefile rpath gnu-make ld ldflags

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

getChildNodes给出了意想不到的结果

我的XML看起来像这样 -

<collected_objects>
        <object flag="complete" id="objId" version="1">
          <variable_value variable_id="varId">ValueGoesHere</variable_value>
          <reference item_ref="2"/>
        </object>
        <object comment="objComment" flag="complete" id="objId" version="1">
          <reference item_ref="1"/>
        </object>
</collected_objects>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码处理它 -

Document dom = parser.getDocument();
    NodeList collected_objects = dom.getElementsByTagName("object");
    System.out.println("Number of collected objects are " + collected_objects.getLength());

        for (int i = 0; i < collected_objects.getLength(); i++) {

            Node aNode = collected_objects.item(i);
            //get children of "objects"         
            NodeList refNodes = aNode.getChildNodes();

            System.out.println("# of chidren are " + refNodes.getLength());

            //print attributes of "objects"

            NamedNodeMap attributes = aNode.getAttributes();
            for (int a = …
Run Code Online (Sandbox Code Playgroud)

java xml dom sax xml-parsing

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

inotify - 如何找出哪个用户修改了文件?

我正在寻找有关如何找出哪个用户修改了特定文件的指导.虽然inotify非常适合在触摸特定文件时获取通知,但我如何确定哪个用户修改了该文件?我可以想到使用lsof,但我担心它可能不像我想要的那样"实时"和/或它可能对资源征税太多.实时,我的意思是,如果用户只是touch在文件上执行命令,那么当我lsof在文件上运行时,它可能无法被提取lsof.

linux filesystems filestream inotify

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

如何在使用/ CLR选项时指定.NET版本

我正在使用/ CLR标志编译第三方C++代码,这只需要.NET Framework 3.5.

代码编译得很好,但是由于我的开发盒上安装了.NET 4.0,因此生成的二进制文件不适用于任何低于4.0的.NET框架

那么,如何在编译时告诉Visual Studio使用特定版本的.NET Framework?

.net clr compilation c++-cli visual-studio-2010

7
推荐指数
1
解决办法
3528
查看次数

如何使用MongoDB C++驱动程序将字符串转换为BSON?

toString类似,有没有办法将字符串转换为BSON对象?我需要使用C++驱动程序删除文档,remove函数要求查询具有BSON对象.

json type-conversion mongodb bson

6
推荐指数
1
解决办法
6664
查看次数

Boost ASIO 丢弃 UDP 数据包

我已将BOOST ASIO 示例的 handle_send_to 函数修改 为如下所示-

{   

ctr++;
cout<<"Counter: "<<ctr<<" data= "<<data<<endl;

socket_.async_receive_from(boost::asio::buffer(data_, max_length), sender_endpoint_,boost::bind(&server::handle_receive_from, this,boost::asio::placeholders::error,boost::asio::placeholders::bytes_transferred));

}
Run Code Online (Sandbox Code Playgroud)

目的是基本上在每次处理 UDP 连接时增加计数器。

测试客户端发送的数据是这样的-

for(;;){
ctr++;
printf("ctr= %lu\n",ctr);
snprintf(buf2, 10,"%lu",ctr);
if ((numbytes = sendto(sockfd, buf2, strlen(buf2), 0,p->ai_addr, p->ai_addrlen)) == -1)   
{
perror("client: sendto");
exit(1);
}
}
Run Code Online (Sandbox Code Playgroud)

运行测试客户端后,我在服务器端看到:

Counter= 358239 data= 369880
Run Code Online (Sandbox Code Playgroud)

数据部分显示消息#。测试客户端确实发送了 369880 条消息,但正如您所看到的,计数器仅为 358239(丢弃了 11641 条消息)。

这里可能出了什么问题?

两台主机(发送方和接收方,运行 Ubuntu 10.04 LTS)的资源都很好 - 我没有看到 CPU、内存或网络饱和。

的输出netstat -su看起来像 -

Udp:
    38569571 packets received
    1003583 packets to unknown port received.
    74619 …
Run Code Online (Sandbox Code Playgroud)

sockets networking boost network-programming boost-asio

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

为什么这个XPATH查询不起作用?

我的XML文档看起来像这样

当我运行XPATH查询时//collected_objects,我没有选择任何节点集.我究竟做错了什么?我想选择整个gather_objects节点.

xpath

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

无法创建外键(错误1072)

我有一张桌子,看起来像这样:

mysql>  SHOW COLUMNS FROM Users;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| user_id    | int(10)      | NO   | PRI | NULL    | auto_increment |
| username   | varchar(50)  | YES  |     | NULL    |                |
| password   | varchar(255) | YES  |     | NULL    |                |
| email      | varchar(255) | YES  |     | NULL    |                |
| phone      | varchar(255) | YES  |     | NULL    |                |
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个像这样的新表:

create …
Run Code Online (Sandbox Code Playgroud)

mysql sql foreign-keys primary-key

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