我正在尝试通过 PHP 更新 MongoDB 文档。我的问题是,当我更新时,文档数据被删除,因此除了我更新的数据之外的其他数据也消失了。
在我更新之前,文档是这样的:
{
"_id": {
"$oid": "4e178b45419866350f000001"
},
"Twitter": {
"_id": {
"$oid": "4e178b45419866350f000000"
},
"created": {
"$date": "2011-07-08T22:57:09Z"
},
"userid": "5552362"
},
"created": {
"$date": "2011-07-08T22:57:09Z"
}
}
Run Code Online (Sandbox Code Playgroud)
我的更新方式如下:
$r = $Profile->update(
array('Twitter._id' => new MongoId($profile['_id'])),
array(
'$set' => array(
'Twitter' => array(
'name' => $user['name'],
'username' => $user['screen_name'],
'url' => $user['url'],
'modified' => new MongoDate()
)
)
),
array('safe' => true)
);
debug($r);
Run Code Online (Sandbox Code Playgroud) 在我的代码中,我在函数中使用了一个对象和变量.在该函数中我不再使用我删除它的对象和变量:
delete myObject;
delete myVar;
Run Code Online (Sandbox Code Playgroud)
这是好习惯吗?
它能提速吗?
我的JavaScript是smart.joyent.com上的服务器端.
我正在做的是获取所有与用户配置文件*具有特定定向关系的配置文件*,如果这些配置文件具有备用配置文件*,则在用户备用配置文件*与其关联时获取这些配置文件.我也需要关系的方向.
我的问题是,大约10000个节点需要大约5秒钟来获取数据.我有节点和关系的自动索引.
这是我的节点相关的方式:
用户 - [:简介] - >配置文件A - [:相关] - >概貌< - [?:我] - > ProfileB2 < - [?:相关] -ProfileA2 < - [:资料] - 用户
我的查询如下所示:
START User=node({source})
MATCH User-[:profile]->ProfileA-[rel:related]->ProfileB
WHERE User-->ProfileA-->ProfileB
WITH ProfileA, rel, ProfileB
MATCH ProfileB<-[?:me]->ProfileB2<-[relB?:related]-ProfileA2<-[:profile]-User
WHERE relB IS NULL OR User-->ProfileA-->ProfileB<-->ProfileB2<--ProfileA2<--User
RETURN ProfileB, COLLECT(ProfileB2), rel, relB
LIMIT 25
Run Code Online (Sandbox Code Playgroud)
知道如何优化查询吗?
我在我的一台服务器上设置并运行了Docker,可以像这样远程连接到它:
docker --tlsverify -H tcp://web2.webcom.dk:4243 images
我想做的是能够通过Node.js连接到它并尝试使用dockerode,这对我来说似乎是最好的选择.
这是我的代码:
Docker = require 'dockerode'
docker = new Docker
host: 'tcp://web2.webcom.dk'
port: 4243
tls: true
tlscacert: '/Users/jacob/.docker/ca.pem'
tlscert: '/Users/jacob/.docker/cert.pem'
tlskey: '/Users/jacob/.docker/key.pem'
tlsverify: true
container = docker.getContainer '826544226fdc'
container.start (err, data) ->
return console.error err if err?
console.log data
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为我收到此错误:
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
UPDATE
这适用于本地:
Docker = require 'dockerode'
docker = new Docker
host: '192.168.59.103'
port: 2375
socketPath: …Run Code Online (Sandbox Code Playgroud) cakephp ×1
coffeescript ×1
cypher ×1
docker ×1
javascript ×1
mongodb ×1
neo4j ×1
node.js ×1
php ×1