草庐IT

node.js - 如何从 node-mongo native 驱动程序获取数据库实例?

考虑一下,我在主app.js文件本身中打开了MongoDB连接,下面的代码属于它的回调:mongodb.connect('MongoDBUrlGoesHere',function(err,db){app.listen(app.get('port'),functionAppListnCB(){console.log("Serverlisteningonport"+app.get('port'));});});这一切都是为了在整个应用程序中只有一个数据库实例。现在,如果我们在另一个external.js文件中并且需要一个已经连接的相同db对象。如果我们使用mongoskin,这可以很容易地

mongodb - Mongo 最大索引大小

蒙戈Docs讨论最大索引大小。IndexKeyThetotalsizeofanindexedvaluemustbelessthan1024bytes.MongoDBwillnotaddthatvaluetoanindexifitislongerthan1024bytes.使用db.collection.stats(),我可以看到我的平均文档大小为5MB。如果我在占文档50%的字段上建立索引,是否意味着索引大小将是50%*5MB=2.5MB?我对如何为单个文档计算索引大小感到困惑。 最佳答案 我不确定您为什么要尝试索引如此大的字段,但

mongodb - 求和 Mongo 子文档数组

db.test3.find(){"_id":1,"results":[{"result":{"cost":[{"priceAmt":100}]}}]}我尝试了以下失败:db.test3.aggregate({$group:{_id:"",total:{$sum:$results.result.cost.priceAmt"}}},{$project:{_id:0,total:1}}){"result":[{"total":0}],"ok":1}编辑期望的输出:100//每个“priceAmt”的总和 最佳答案 您必须使用$unwind

mongodb - Mongo _id 作为字符串索引键。是好是坏?

我正在开发一个API,获取资源的唯一方法是提供一个字符串键,如my_resource。覆盖_id是一个好习惯(这使一些mongodb驱动程序更易于使用)还是不好?从长远来看呢?谢谢 最佳答案 如果有比ObjectID更自然的主键(例如,字符串值),请随意使用。ObjectID的目的是允许分布式客户端根据standardformula快速独立地生成唯一标识符。.12字节的ObjectID公式包括一个4字节的时间戳、3字节的机器标识符、2字节的进程ID和一个以随机值开头的3字节的计数器。如果您生成/分配您自己的唯一标识符(即使用字符串)

mongodb - 以编程方式更新 Mongo 和 Meteor 中的字段

我有一个要更新的收藏集。该字段以编程方式给出,所以我想做这样的事情:varupdate_string='coordinates.lat';varupdate=function(value,id,update_string){Collection.update({_id:id},{$set:{update_string:value}})}但这不起作用,只是将“update_string”设置为在集合中具有_id{{id}}的对象中具有值{{value}}。我也试过varupdate_string="'coordinates.lat'";无济于事。我该如何实现?谢谢。

javascript - 将mongo db连接到远程服务器nodejs

我使用nodejs服务器并使用mongoose在本地连接到MongoDB:mongooseQ.connect("mongodb://localhost:27017/YepiMobile");如何从我的机器连接到位于远程服务器上的mongo数据库?类似于:mongooseQ.connect("mongodb://remote.server.com:27017/YepiMobile"); 最佳答案 第二次连接尝试是否失败,通过阅读Mongoose的文档似乎您已经正确完成了:mongoose.connect('mongodb://user

javascript - 如何使用 native Node 驱动程序在 Node 服务器上执行 mongo 查询字符串?

我想将类似“db.users.find()”的字符串传递给Node服务器并让它执行命令。本题:HowtoexecuteaMongoDBqueryinthenativenode-mongo-nativedriver?对C-驱动程序有答案。有没有办法直接用本地Node驱动程序来做?我试过做db.eval('function(){'+query+'}',function(err,result){console.log("theresultis",result});而且它不起作用。感谢您的帮助。 最佳答案 你很接近,但你创建的函数需要返回一

mongodb - Mongo - 如何找出我所连接的用户具有哪些角色?如何为用户分配完全读写访问权限?

我已经能够从我的MacBook终端命令行连接到我的Mongo实例(它托管在Compose.io的云中——它是一个通过Heroku的“插件”)。但是,我无法执行任何操作。“显示集合”和“显示用户”等命令失败并显示“未授权”错误。我如何才能知道我连接的用户有哪些角色?另外,如何添加具有完全读写权限的用户?我当然试过了:db.createUser({user:"accountUser",pwd:"password",roles:["readWrite","dbAdmin"]})但此命令失败,无法添加用户:未授权在my_db上执行命令 最佳答案

node.js - 在链接的 Docker 容器中的 Mongo 数据库中播种数据

我正在使用fig部署我的Node.js应用程序。fig.ymlweb:build:.command:nodeapp.jslinks:-dbports:-"1337:1337"db:image:dockerfile/mongodb正在运行figrundbenv给我以下环境变量:DB_PORT=tcp://172.17.0.29:27017DB_PORT_27017_TCP=tcp://172.17.0.29:27017DB_PORT_27017_TCP_ADDR=172.17.0.29DB_PORT_27017_TCP_PORT=27017DB_PORT_27017_TCP_PROTO=

javascript - 如何在 Mongo 聚合管道的 $unwind 阶段保留零长度值?

我正在使用聚合管道编写Mongo查询。在聚合期间,我需要$unwind字段之一。但是,我不希望$unwind排除该字段具有零长度数组的条目,因为我仍然需要它们进一步向下流水线。我的字段名为items,它是一个对象数组,每个对象包含两个值:quantity和price。到目前为止,这是我的Mongo查询的一个片段:db.MyCollection.aggregate([{$match:...},{$project:...},//putanother$projectheretoretainzero-lengthvalues?howtoformatit?{$project:{_id:"$$RO