我有int数组使用mongo shell更新集合.当我更新它实际上它以双格式存储.
var array =[1,2,3]; // int array as all elements are int
// Update query where path is the collection field
db.doc.update({},{$set : {“path”:array}},{ upsert: true });
Run Code Online (Sandbox Code Playgroud)
实际上它存储了:
{
"_id" : ObjectId("529ae0e70971d81eedf5cb3d"),
"path" : [1.0, 2.0, 3.0]
}
Run Code Online (Sandbox Code Playgroud)
我是mongo的新手,必须在mongo shell中运行更新查询.如何避免自动双转换.
我有一个收集文档喜欢.
{'_id':1,
'name':'Root',
'taskId':1,
'parentId':"",
'path':[1],
'tasks':[ {"taskId":3,parentId:1,name:'A',status:'Created'},
{"taskId":4,parentId:1,name:'D',status:'Created'},
{"taskId":5,parentId:4,name:'B',status:'Created'},
{'type':'project' , 'proRef':2},
{"taskId":6,parentId:3,name:'E',status:'Started'},
{"taskId":7,parentId:6,name:'C',status:'Stopped'}]
}
Run Code Online (Sandbox Code Playgroud)
现在我想将多个数组元素字段'status'更新为'Deleted',它位于JSON内部.让我们假设对于taskId 3,4,我需要将状态更新为Deleted.我已经尝试使用带有查询($)的$ in这个查询,但它更新的第一个元素只是$ in array.在下面的查询中,只有taskId和3才会更新而不是4.
db.projectPlan.update({"_id": 1,'tasks.taskId': {$in :[3,4]}} , {$set: {'tasks.$.status': 'Deleted'}}, {upsert: false, multi: true});
Run Code Online (Sandbox Code Playgroud)
如何在单个查询中更新多个元素.谢谢!
我正在尝试在sigma.js中实现展开和折叠。右键单击任何节点,它会添加新节点并连接其边缘,但它被放置在随机位置。
我想在可用空间中添加节点,它们不应与其他节点碰撞或重叠。它应该随着动画缓慢扩展,在自由空间区域中扩展,就像这个例子一样。有关的。
<!DOCTYPE html>
<html>
<head>
<title> Airlines Graph Render </title>
<script src="../build/sigma.min.js"></script>
<script src="../src/renderers/canvas/sigma.canvas.edges.curvedArrow.js"></script>
<script src="../plugins/sigma.layout.forceAtlas2/worker.js"></script>
<script src="../plugins/sigma.layout.forceAtlas2/supervisor.js"></script>
<script src="../plugins/sigma.renderers.edgeLabels/settings.js"></script>
<script src="../plugins/sigma.renderers.edgeLabels/sigma.canvas.edges.labels.curve.js"></script>
<script src="../plugins/sigma.renderers.edgeLabels/sigma.canvas.edges.labels.def.js"></script>
<script src="../plugins/sigma.renderers.edgeLabels/sigma.canvas.edges.labels.curvedArrow.js"></script>
<style>
body,html{
width: 100%;
margin: 0px;
padding: 0px;
height: 100%
}
#graph-container {
width:100%;
height: 100%;
}
</style>
</head>
<body>
<div id="graph-container"></div>
<script >
var graph = {
"nodes": [
{
"city": "Dallas",
"area": 999,
"code": 214,
"country": "USA"
},
{
"city": "Austin",
"area": 1180,
"code": …
Run Code Online (Sandbox Code Playgroud) 我有文件的集合,如:
{ "_id" : 1, "path" : [ 3, 1 ], "name" : "A" }
{ "_id" : 2, "path" : [ 3, 1, 1 ], "name" : "B" }
{ "_id" : 3, "path" : [ 3, 1, 1, 1 ], "name" : "C" }
{ "_id" : 4, "path" : [ 3, 1, 2 ], "name" : "D" }
{ "_id" : 5, "path" : [ 3, 1, 2, 1 ], "name" : "E" }
{ "_id" : …
Run Code Online (Sandbox Code Playgroud) 我正在使用强制布局来创建有向图.它在画布上呈现.我的示例示例位于http://jsbin.com/vuyapibaqa/1/edit?html,output
现在我的灵感来自
https://bl.ocks.org/mattkohl/146d301c0fc20d89d85880df537de7b0#index.html
d3 svg中的资源很少,我试图在画布中使用类似的东西.
http://jsfiddle.net/zhanghuancs/a2QpA/
http://bl.ocks.org/mbostock/1153292 https://bl.ocks.org/ramtob/3658a11845a89c4742d62d32afce3160
http://bl.ocks.org/thomasdobber/9b78824119136778052f64a967c070e0
使用d3在两个节点之间绘制多条边.
想要用箭头添加椭圆弧连接边缘.如何在画布中实现这一点.
我的代码:
<!DOCTYPE html>
<html>
<head>
<title>Sample Graph Rendring Using Canvas</title>
<script src="https://rawgit.com/gka/randomgraph.js/master/randomgraph.js"></script>
<script src="https://d3js.org/d3.v4.min.js"></script>
</head>
<body>
<script>
var graph = {}//randomgraph.WattsStrogatz.beta(15, 4, 0.06);
graph.nodes = [{"label":"x"} , {"label":"y"}];
graph.edges = [{source:0,target:1},{source:0,target:1},
{source:1,target:0}]
var canvas = null
var width = window.innerWidth,
height = window.innerHeight;
canvas = d3.select("body").append("canvas").attr("width",width).attr("height",height);
var context = canvas.node().getContext("2d");
force = d3.forceSimulation()
.force("link", d3.forceLink().id(function(d) {
return d.index;
})).force("charge", d3.forceManyBody())
.force("center", d3.forceCenter(width / 2, height / 2)); …
Run Code Online (Sandbox Code Playgroud)如何在 Scala 中将List[Task[List[Header]]]类型转换为 Task[List[Header]]。
我有一个方法返回 Task[List[Header]] 并多次调用 do 它变成 List[Task[List[Header]]]
我有一个在node.js和Express中运行的web服务器,它从mongodb中检索数据.在mongodb中,集合是动态创建的,新创建的集合的名称将存储在一个元数据集合"项目"中.我的要求是首先迭代到元数据集合以获取集合名称,然后进入每个集合内部以根据某些条件进行多个查询.因为我的集合元数据是动态的,所以我尝试使用for循环.但它提供了错误的数据.它没有执行后续行动.在完成循环执行之前,它返回值.如何仅使用节点核心模块在node.js中执行顺序执行(不是其他库,如async ..);
exports.projectCount = function (req, res) {
var mongo = require("mongodb"),
Server = mongo.Server,
Db = mongo.Db;
var server = new Server("localhost", 27017, {
auto_reconnect: true
});
var db = new Db("test", server);
// global JSON object to store manipulated data
var projectDetail = {
projectCount: 0,
projectPercent: 0
};
var totalProject = 0;
db.open(function (err, collection) {
//metadata collection
collection = db.collection("project");
collection.find().toArray(function (err, result) {
// Length of metadata collection
projectDetail.projectCount = result.length;
var count = 0; …
Run Code Online (Sandbox Code Playgroud) 我在Mongo中有这些数据:
{'_id':1,
'name':'Root',
'taskId':1,
'parentId':"",
'path':[1],
'tasks':[ {"taskId":3,parentId:1,name:'A',type:'task'},
{"taskId":4,parentId:1,name:'D',type:'task'},
{"taskId":5,parentId:4,name:'B',type:'task'},
{'type':'project' , 'proRef':2},
{"taskId":6,parentId:3,name:'E',type:'task'},
{"taskId":7,parentId:6,name:'C',type:'task'}]
}
Run Code Online (Sandbox Code Playgroud)
现在我想用新的Json数据更新taskId 6.
var jsonData = {"taskId":6,"name":'Sumeet','newField1':'Val1','newField2':'Val2'}
Run Code Online (Sandbox Code Playgroud)
如果字段可用,则查询应更新,否则将新密钥添加到现有.Output Like
{"taskId":6,parentId:3,name:'Sumeet',type:'task','newField1':'Val1','newField2':'Val2'}]
Run Code Online (Sandbox Code Playgroud)
我尝试了很少的查询,但它完全取代了json.
db.projectPlan.update({_id:1,'tasks.taskId':6},{$set :{'tasks.$':jsonData }});
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!Sumeet
在Java中,我在下面编写了string trim()方法的代码.
if(" String ".trim() == "String")
System.out.println("Equal");
else
System.out.println("Not Equal");
Run Code Online (Sandbox Code Playgroud)
它给出了Not Equal
我理解的输出,因为" String ".trim()
它返回了新的String
对象引用.
但是当我修剪和比较没有空格时,它会提供输出Equals
.
if("String".trim() == "String")
System.out.println("Equal");
else
System.out.println("Not Equal");
Run Code Online (Sandbox Code Playgroud)
如果String没有空格,那么trim()
返回什么方法?我知道equals()
我可以使用但是在我的考试中我得到了这个问题.