Mongodb mapreduce函数没有提供任何方法来跳过数据库中的记录,如find函数.它具有查询,排序和限制选项的功能.但是我想跳过数据库中的一些记录,而我却没有任何方法.请提供解决方案.
提前致谢.
我目前正在为酒店预订网站建立一个类似模型的应用程序.
目前正在考虑处理可用性搜索的方法
我的模型看起来有点像下面的东西:
酒店
_id
名称
说明
star_rating
地址
lat
lon
然后,我想到了一个可用性集合,如下所示:
可用性
hotel_id(如果可用性是它自己的集合)
date
room_type
room_max_occupancy
价格
date会存储一天房间可用
room_type就像"Twin""Double"
room_max_occupancy将是2,3等等...
一个示例查询将是:
6月1日至8日的一个房间,可容纳2人.
对于"搜索结果",我需要返回hotel.name,hotel.description,hotel.star_rating.
我正在寻找最有效的方法来存储上面列出的查询类型的数据?
可用性集合应该是它自己的集合还是酒店的子文档?
如果它是自己的集合,我应该将lat lon添加到可用性(以及hotel_id)以提高搜索效率吗?
我正在尝试在Redis数据库中对类似于amazon.com类别(例如,书籍,电影,电子产品等)的数据进行建模.订单在HTML页面上呈现时对我很重要,因此向用户呈现一致的用户界面.因此,我将类别存储在排序集中:
ZADD categories 0 "Books"
ZADD categories 1 "Movies"
ZADD categories 2 "Electronics"
Run Code Online (Sandbox Code Playgroud)
然后,我为每个子类别创建了另一个排序集.
ZADD categories:books 0 "Fiction"
ZADD categories:books 1 "Non-Fiction"
ZADD categories:movies 0 "Horror"
[...]
Run Code Online (Sandbox Code Playgroud)
从这里开始,我想我可以将产品存储在哈希中.
HMSET product:1000 category 0 subcategory 0 title "Redis Cookbook"
HMSET product:1001 category 1 subcategory 0 title "Nightmare on Elm Street"
[...]
Run Code Online (Sandbox Code Playgroud)
我对Redis和Key/Value数据库商店都很陌生,所以我对自己的方法充满信心.这种模式对我来说是长期的吗?我应该注意更好/替代的方法吗?我担心的一个问题是保持名称"同步".例如,如果我将顶级类别从"书籍"更改为"文献"(可怕的例子,我知道),还应更新"参考"书籍的子类别的所有键.
我一直在通过Udacity,Code Academy和Google University学习Python.我现在有足够的信心开始学习Django了.我的问题是我应该在SQL数据库上学习Django - 无论是SQLite还是MySQL; 或者我应该在Mongo等NoSQL数据库上学习Django?
我已经阅读了关于这两者的所有内容,但有很多我不明白.Mongo听起来更好/更容易,但同时对那些已经非常熟悉关系数据库并且正在寻找更敏捷的东西的人来说听起来更好/更容易.
我是MongoDB的新手,我刚刚成功地从MS SQL迁移到了MongoDB.当我为MongoDB集合制作我的自定义类时,我有一些额外的属性,我不需要它.
我怎么能删除它?
例如,假设我有基本课程
public class Basic {
public ObjectId _id {get;set;}
public string Name {get;set;
public string Description {get;set;
}
Run Code Online (Sandbox Code Playgroud)
然后我在Mongo存储一些项目
var collection = Mongo.GetCollection<Basic>("basic");
var item = new Basic{ Name = "TestName", Description = "Remove me"};
collection.insert(item);
Run Code Online (Sandbox Code Playgroud)
当我进行更改例如我不需要我的Basic类中的Description属性时,我想删除所有文档中的每个Description属性.
我有一个弹性搜索文档,看起来像......
{
"items":
[
"ONE BLAH BLAH BLAH TWO BLAH BLAH BLAH THREE",
"FOUR BLAH BLAH BLAH FIVE BLAH BLAH BLAH SIX"
]
}
Run Code Online (Sandbox Code Playgroud)
我希望能够使用短语查询来搜索此文档,例如...
{
"match_phrase" : {
"items" : "ONE TWO THREE"
}
}
Run Code Online (Sandbox Code Playgroud)
因此,无论中间的单词如何,它都将匹配.这些词也需要按顺序排列.我意识到这可以通过slop属性来实现,但是当我进行实验的时候,它似乎包裹起来,如果斜率不仅仅是我在搜索之间的单词,而且这是一个不确定的单词我不喜欢认为slop是合适的.另外我只需搜索数组中的每个项目,所以...
{
"match_phrase" : {
"items" : "ONE TWO SIX"
}
}
Run Code Online (Sandbox Code Playgroud)
如在本文件不会匹配SIX是在该阵列中不同的项目ONE和TWO.
所以我的问题是,这可能是通过elasticsearch还是我必须创建一个对象数组并使用嵌套查询来搜索它们?
我对Cassandra一无所知.说,我有类似Facebook的网站,人们可以分享,评论,上传图片等.
现在,让我们说,我想得到我朋友所做的所有事情:
等等.
因此经过大量阅读后,我想我需要做的是为每一件事创建新的列族,例如:user_likes user_comments, user_shares. 基本上,你可以想到的任何事情,甚至在我这样做之后,我仍然需要为大多数列创建二级索引,以便我可以搜索数据?即便如此,我怎么知道哪些用户是我的朋友?我是否需要首先获取所有朋友ID,然后搜索所有这些列系列中的每个用户ID?
编辑 好了所以我做了一些更多的阅读,现在我理解了一些更好的东西,但我仍然无法弄清楚如何构建我的表,所以我将设置一个赏金,我想得到一个明确的例子我的如何如果我想以这种顺序存储和检索数据,那么表应该是这样的:
所以,假设我想要检索所有朋友或我关注的人的最后上传的十个文件,这就是它的样子:
John uploaded song AC/DC - Back in Black 10 mins ago
评论和分享等所有内容都与此类似......
现在可能最大的挑战是将所有类别的10个最后的东西一起检索,所以列表将是所有事物的混合......
现在,我不需要完全的明细表格的答案,我只是需要的如何将我构建了一些非常明显的例子和检索数据就像我会做的mysql与joins
鉴于有一个标签集合的帖子的流行示例,让我们说我们希望每个标签不仅仅是一个字符串,而是一个字符串的元组和一个表示所述标签强度的double.
如何根据标签强度的总和发布一个查询并对其进行评分(假设我们在标签名称中搜索确切的术语)
在我的域中,节点可以具有与其他实体相同类型的多个关系.每个关系都有几个属性,我想检索由至少2个呈现给定属性的关系连接的节点.
EG:节点之间的关系具有属性year.如何找到与year设置至少有两个传出关系的节点2012?
Chypher到目前为止为什么查询看起来像这样(语法错误)
START x = node(*)
MATCH x-[r:RELATIONSHIP_TYPE]->y
WITH COUNT(r.year == 2012) AS years
WHERE HAS(r.year) AND years > 1
RETURN x;
Run Code Online (Sandbox Code Playgroud)
我也试过嵌套查询,但我相信这是不允许的Cypher.最接近的是以下但我不知道如何摆脱值为1的节点:
START n = node(*)
MATCH n-[r:RELATIONSHIP_TYPE]->c
WHERE HAS(r.year) AND r.year == 2012
RETURN n, COUNT(r) AS counter
ORDER BY counter DESC
Run Code Online (Sandbox Code Playgroud) 如果我想存储大量文件+复制数据库,那么NoSql数据库对于这类工作最好?
我正在测试MongoDB和CouchDB,这些数据库非常好用且易于使用.如果有可能我会使用其中一个来存储文件.现在我看到了Mongo和Couch之间的区别,但我无法解释哪个更适合存储文件.如果我在谈论存储文件,我的意思是10-50MB的文件,也可能是50-500MB的文件 - 可能还有很多更新.
我在这里找到一张漂亮的桌子:

仍然不确定哪些属性最适合文件存储和复制.但也许我应该选择另一个NoSql DB?