Tag: nosql

在mongodb中存储数据的最佳方法

我正在开发一个有很多关系的项目。 我想知道哪一个是最好的方法来存储数据。 创buildchild_model,然后将_id推给parent_model。 在父模型内部创buildchild_model,我们不只是推送整个数据_id。

根据MongoDB中另一个集合中的数据查询一个集合中的数据

我想学习如何使用MongoDB,我真的很困惑如何做到这一点。 我所拥有的是两个藏品,一个拥有多个用户,另一个拥有多个项目。 例如: 用户: { "_id" : ObjectId("56dba03438e1a255b97e82b6"), "name" : "john", "age" : 25 } 项目: { "_id" : ObjectId("56dba0db38e1a255b97e82b7"), "name" : "pencil" } 现在我想在我的应用程序中做的是允许用户select一个项目,但多个用户可以select相同的项目。 所以我需要跟踪哪些用户点击了哪些项目。 我想过使用另一个跟踪用户标识和项目标识的集合(用户只能select一个项目)。 这是正确的方法吗? 我创build了这个集合: useritems: { "_id" : ObjectId("56dba0db38e1a255b97e82b7"), "userid" : "56db9fb038e1a255b97e82b5", "itemid" : "56dba03438e1a255b97e82b6" } 如果这是正确的方法,那么我希望能够在我的应用程序中点击一个项目,并显示所有select该项目的用户的列表。 我怎样才能做到这一点? 我尽可能只显示在应用程序中select的itemid = itemid的useritems集合文档…但是现在,我将如何显示基于useritems集合中用户集合中的所有用户? router.get('/userlist/:id', function(req, res) { var db = req.db; var […]

使Azure DocumentDB不返回服务字段

我在节点应用程序中使用类似于SQL的Sytax for Azure DocumentDB。 这里是方法代码 client.queryDocuments(collection._self, "SELECT * FROM root").toArray(function(err, results) { if (err) { callback(err); } else { callback(null, results); } }); 和回应 [ { "id": "test1", "name": "Kate", "email": "test@mail.com", "brands": [ "AAAA", "BBB", "CCCi" ], "_rid": "WedNAN3lZgABAAAAAAAAAA==", "_self": "dbs/WedNAA==/colls/WedNAN3lZgA=/docs/WedNAN3lZgABAAAAAAAAAA==/", "_etag": "\"00001b00-0000-0000-0000-56fff6c60000\"", "_ts": 1459615430, "_attachments": "attachments/" } ] 有什么办法让DocumentDb不会重复执行服务字段(_rid,_self,_etag,_ts,_attachments),但不能在select子句中写入所有非服务字段?

停止Cloudant查询返回_design文档

我用NodeJS模块查询一个Cloudant数据库,都使用特定的字段search,也使用db.list()函数。 不过,我也(正确地)还退还了所有的devise文件。 有没有办法阻止devise文件被返回,即当使用列表,而不运行特定的查询来检查_id,或testing从数据库中的每个项目的响应? 我无法在文档中find一种方法,只是提及_design文档像任何其他文档一样被查询和更新,据推测为什么它们包含在列表中。 谢谢

Google云数据存储如何在本地运行?

在尝试使用Node.js和Google Cloud Datastore(针对我的应用程序的后端)时,我注意到,即使没有Datastore Emulator,我也可以使用Datastore API在本地运行和testing我的应用程序。 注意 :我没有将我的应用程序部署到云端。 更具体地说,我克隆了“nodes-getting-started”的github版本库,创build了一个config.json文件,运行npm install,最后运行了npm start。 我可以使用API​​添加和删除书籍。 这些数据在哪里存储? 我发现这很有趣,不知道它是如何工作的。 我会深表感谢任何帮助。 它正在把我的脑子吃掉。 谢谢!

数据库架构在Node.js环境中

假设我们有一个允许人们喜欢或不喜欢图片的应用程序。 这看起来像一个数据密集型应用程序,因为你会期望有大量的(dis)请求,所以说我们select了Node.js。 由于我们不希望人们多次投票,我们需要一种将picId和userId相关联的方式。 这可以做到: 与关系数据库通过使用picId和userId是键的表, 与NoSQL,通过为每个用户创build一个“文件”,并在那里存储她投票的所有图片…或者反过来,为每个图片创build一个文件,并在那里存储所有已经投了图片的用户ID。 这部分数据库将被大量阅读和写入,对于每个投票,你首先需要检查用户是否已经投票,然后写新的投票,再加上更新图片的总投票数。 哪个是最好的select(仅基于技术原因)?

使用$ group时是否可以列出不存在的组?

如果我想从节点服务器(使用mongoosoe)对mongodb集合执行$ group和$ sum,是否可以为非现有组返回0? 该集合具有以下字段:ssn,名称,性别,城市。 model.aggregate([ { $group : { _id : { city:"$city", gender:"$gender"}, count{ $sum:1 }} }], function (err,result) { if(err) { //err } else{ //response } }); 如果城市中有两个性别的人 – 查询将返回: { "_id" : { "city" : "NY", "gender" : "male" }, "count" : 11 }, { "_id" : { "city" : "NY", "gender" […]

一个沉重的查询mongodb挂起网站

我的网站(使用MEAN.JS)有1个login页面,它也有多个统计页面(在db中的数据build立报告页面)。 有一个重要的报告会从数据库中提取大约100MB,花费大约10s来完成。 问题是运行这个报告时,大部分的其他网页都无法在浏览器上加载,因为它们也对MongoDB进行查询。 例如,即使已经显示login页面的UI,用户也不能loginlogin页面。 MongoDB能够并行执行多个查询吗?还是仅仅是一个查询队列? MongoDB服务器版本是v3.2.3。 该报告使用2个集合:用户,trackinglocations。 我正在build设一个月的报告: 30 days * 100 users * 10000 gps locations/day/user = 30 million locations user: { username: (string), organization: (objectid) } trackinglocation: { username: (string), date: (date), locations: [ { speed: (number), long: (number), lat: (number) } ] } 我首先查询,findpipe理组织中的用户。 然后查询报告该组织中用户在date范围内的旅行距离。 不仅login页面,许多其他页面在做报告时都不响应浏览器(UI部分仍然由ExpressJS响应,但没有数据表的机会)。

NoSql与远程服务器脱机同步

我遇到了一个问题声明,需要离线同步function的应用程序。 在这种情况下,用户将填写提供的工作表中的数据,可能并不一定有networking可用。 每当他进入networking时,客户端应该同步数据。 可以有两种types的服务器,一种是卫星服务器,它可以作为表格中填充的数据的温度存储或登台,这可能在互联网或内联网中,因此,第一步客户端将数据推送到该服务器,然后会有Azure或AWS中的云服务器将成为事实的根本来源,并且数据最终会在这里同步。 该应用程序将在MEAN堆栈中,因为NoSql不遵循ACID属性,我将如何确保NoSql世界中的数据完整性。 换句话说,我该如何确保每次同步发生时都会发生在某个检查点,如果没有,那么它会回滚? 数据量将是巨大的,因为它是一个企业应用程序。 此外沙发数据库或袋数据库或任何其他数据库不是一个选项。 它要么是mongo,要么是Azure的DocumentDB。

如何通过nodeJS从Google Datastore的索引中排除数组字段?

我正在使用Google数据存储,并将索引属性的大小限制为1500字节。 该文档提到,未索引的属性的限制是1 MB – 89字节。 我有以下结构: dataset = { property1: String, property2: String, property3: [ { subProperty1: String, subProperty2: ArrayList<String>, // Larger than 1500 bytes excludeFromIndexes: true } ] } 这给出了: “错误:属性”subProperty2“的值大于1500字节”。 它没有工作,我不明白为什么。 有什么build议么?