标签: nosql

如何使用.NET客户端以编程方式删除在couchbase中托管的数据库存储桶中的所有数据

我正在尝试使用.NET客户端刷新存储桶中的所有数据.这是我正在使用的代码:

        _instance = new CouchbaseClient();
        _instance.FlushAll();
Run Code Online (Sandbox Code Playgroud)

但是,抛出以下异常消息"要刷新Couchbase存储桶,请使用Couchbase.Management API."

我也启用了"Flush"启用设置.

.net c# nosql couchbase

3
推荐指数
1
解决办法
1628
查看次数

MySql vs NoSql - 社交网络评论和通知数据结构和实现

我真的很难弄清楚有关社交网站(Facebook作为参考)如何管理其用户的评论和通知的见解.

他们如何实际存储评论数据?如何存储通知并将其发送给所有用户.一个示例场景是,朋友评论我的状态,并且每个喜欢我状态的人都会收到通知.此外,每个用户都有自己的读/未读功能,所以我猜有一个为每个用户存储的通知参考.但随后会有很多通知信息的冗余.如果我们使用单独的表/集合来存储它们并参考实际的notificatin,那么这将产生实时可伸缩性问题.那么你将如何决定权衡方式呢?当我想到这一切时,我的大脑崩溃了.通过网络提供的帮助不足以解决太多问题.

现在,如何将每个通知发送给应该接收该通知的所有用户......以及数据结构的外观如何.

我阅读了许多建议使用MySql的实现.我的理解是,那种数据(大小)就是,最好使用NoSql来实现可扩展性.那么MySql如何很好地适用于这样的用例,为什么像Mongo这样的NoSql在任何地方都没有被建议用于这种实现,因为这些都是高度可扩展的.

好吧,我知道很多问题.但我不是在寻找一个完整的答案,对特定事物的见解也对我构建自己的应用程序有很大的帮助.

mysql database-design scalability social-networking nosql

3
推荐指数
1
解决办法
5095
查看次数

导入Java OrientDB包

我本身对Java并不陌生...或者自己寻找答案。但是由于某种原因,我无法导入OrientDB软件包。我看了以下简单示例:

https://github.com/orientechnologies/orientdb/wiki/Java-Tutorial:-简介

尝试使用OrientDB

例:

   import com.tinkerpop.blueprints.TransactionalGraph;
   import com.tinkerpop.blueprints.impls.orient.OrientGraph;
Run Code Online (Sandbox Code Playgroud)

但是对于我使用的任何导入组合,我都会不断收到“包*不存在”的信息。

我的印象是,开始所需要做的就是'orientdb-community-1。/ lib / orientdb-core-1。。罐'。“ com”,“ tinkerpoop”和“蓝图”来自哪里?

java database nosql orientdb

3
推荐指数
1
解决办法
856
查看次数

noSQL回滚功能

我是noSQL技术的新手,我很惊讶没有任何交易支持.我的主要问题是当我完成一些插入任务时,插入包含~5个单独的插入.我们必须通过4个不同的ID找到一份文件.问题是该文档相当大,存储它是非常昂贵的:

  • 关键| 值


  • user1 HugeDoc1

  • user2 HugeDoc1
  • user3 HugeDoc1

因此,我们提出了一个内部标识,指向文档.是的,我知道这个设计有点违反了整个noSQL概念,但它节省了大量内存.如果文档插入失败,则ID没有意义,应该删除.编写自己的回滚处理,跟踪成功的插入/更新是一个好主意吗?或者整个概念是错的?

cassandra nosql infinispan couchbase

3
推荐指数
1
解决办法
1110
查看次数

解决Pouch Couch DB

我正在开发一个离线工作的原型网站,该网站利用Pouch DB,以便在它上线时同步回服务器上的CouchDB.

袋DB冲突指导说:

要解决冲突,您可以在当前获胜者的基础上添加()新修订.

你怎么做到这一点?我尝试了以下功能但是没有按预期工作:

function (current, chosen) {
    chosen._rev = current._rev;
    chosen._conflicts = [];
    db.put(chosen);
};

function (chosen) {;
    db.put(chosen);
};
Run Code Online (Sandbox Code Playgroud)

top函数有两个文档:

  • 该文件是目前的赢家
  • 用户选择成为新赢家的文档.

我在某些地方(比如这里)读到删除丢失的冲突是必要的,但如果可能的话我宁愿不删除任何内容,而Pouch DB指南也没有提到这一点.

javascript couchdb nosql pouchdb

3
推荐指数
1
解决办法
894
查看次数

Cassandra抛出错误请求:具有条件的批处理不能跨越多个表

Cassandra 文档博客说,带有条件更新语句的批处理在分区的粒度下工作,而分区是由主键中的第一个键定义 所以,我有以下键空间:

CREATE TABLE SOCIAL_PROFILE (
soc_net_type text,
soc_net_user_id text,
user_prof_id text,
PRIMARY KEY (soc_net_type, soc_net_user_id)); 

CREATE TABLE SOCIAL_PROFILE_CONTACT (
soc_prof_soc_net_type text,
soc_prof_soc_net_user_id text,
soc_net_user_id text,
PRIMARY KEY (soc_prof_soc_net_type, soc_prof_soc_net_user_id, soc_net_user_id));
Run Code Online (Sandbox Code Playgroud)

并插入声明:

BEGIN BATCH INSERT INTO social_profile (soc_net_type, soc_net_user_id, user_prof_id) VALUES ('vk', '1', '100') IF NOT EXISTS; INSERT INTO social_profile_contact (soc_prof_soc_net_type, soc_prof_soc_net_user_id, soc_net_user_id) VALUES ('vk', '1', '2'); INSERT INTO social_profile_contact (soc_prof_soc_net_type, soc_prof_soc_net_user_id, soc_net_user_id) VALUES ('vk', '1', '3'); INSERT INTO social_profile_contact (soc_prof_soc_net_type, soc_prof_soc_net_user_id, soc_net_user_id) VALUES …

batch-processing cassandra nosql cassandra-2.0

3
推荐指数
1
解决办法
1382
查看次数

Mongoose到期财产不能正常运作

答案

因此,当我在Mongoose中使用expires属性进行测试,我成功地在数据库中设置了TTL索引,但没有意识到当我在我的mongoose模式中更改时间时我需要删除以前的TTL索引首先退出数据库.

TLDR; - 停止应用程序并删除要更改的字段的TTL索引(请参阅下面的评论/答案)

得到索引

好的,以下示例中的代码,在调用之后: db.sampletexts.getIndexes() 我得到了

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "test.sampletexts"
    },
    { 
        "v" : 1,
        "key" : {
            "createdAt" : 1
        },
        "name" : "createdAt_1",
        "ns" : "test.sampletexts",
        "expireAfterSeconds" : 5400,
        "background" : true,
        "safe" : null
    }
]
Run Code Online (Sandbox Code Playgroud)

所以虽然我指定60秒,它的设置为5400?呵呵.

第二次更新

这是我试图运行的最小例子.我必须在这里遗漏一些东西,因为我实际上将我的模型从原始项目复制到示例(减去一些额外的字符串字段),现在文档根本没有过期?拜托,让我感到愚蠢,并意识到我错过了一些明显的东西.我想了一下,设置一个间隔来运行文档和当前时间之间的时差检查,然后意识到通常会扩展的许多查询运行得有多糟糕.嗯...

MongoDB v3.0.1 && Mongoose v4.0.1

相关代码:/routes/index.js


我运行的一些测试值:

整个领域看起来像这样

createdAt: { type: Date, expires: 3600, default: …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb nosql

3
推荐指数
1
解决办法
3223
查看次数

在MongoDB中查询Array中的多个ObjectID

我的数据库中有一个"用户"集合.用户可以是多个团队的成员.

我使用数组来引用团队ID.

{ _id: ObjectId("552544fd600135861d9e47d5)", 
  name : "User1",
  teams: [
        "5527a9493ebbe2452666c238",
        "5527b1be3371e3a827fa602c"
    ]
}
Run Code Online (Sandbox Code Playgroud)

这些团队只不过是一个集合:

{ _id: ObjectId("5527a9493ebbe2452666c238"),
  name: "Team 1"
}
{ _id: ObjectId("5527b1be3371e3a827fa602c"),
  name: "Team 2"
}
Run Code Online (Sandbox Code Playgroud)

现在我想获得用户所属的所有团队的名称.

我只是找到了这样查询的方式:

db.teams.find(
   {_id:{$in:
      [ObjectId("5527a9493ebbe2452666c238"),
      ObjectId("5527b1be3371e3a827fa602c")]
   }})
Run Code Online (Sandbox Code Playgroud)

为此,我需要专门为此查询创建一个数组.我宁愿尝试避免这种情况,因为我已经将ID作为字符串格式的数组提供.像这样的东西会很棒:

db.teams.find(
   {_id:{$in:  
          ["5527a9493ebbe2452666c238",
          "5527b1be3371e3a827fa602c"]  // Strings here, not ObjectIDs
   }})
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有没有什么方法可以用一组字符串ID查询ObjectID?

谢谢你和罗尔夫

database mongodb nosql

3
推荐指数
1
解决办法
5226
查看次数

Couchbase N1QL:嵌套文档的更新

有这样的嵌套文档时:

{
"blog": "testblog1",
"user_id": 41,
"comments": [
    {
        "comment": "testcomment1",
        "user_id": 883
    },
    {
        "comment": "testcomment2",
        "user_id": 790
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

可以使用N1QL进行更新操作以向子文档添加额外的字段吗?

我想"ranking" : "top comment"使用注释testcomment2 将该字段添加到子文档:

{
"blog": "testblog1",
"user_id": 41,
"comments": [
    {
        "comment": "testcomment1",
        "user_id": 883
    },
    {
        "comment": "testcomment2",
        "user_id": 790,
        "ranking" : "top comment"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

站点注意:以下语句将向集合博客上的根文档添加一个字段:

UPDATE Blog SET rank = "top blog" WHERE blog = "testblog1";
Run Code Online (Sandbox Code Playgroud)

document nosql couchbase sql++

3
推荐指数
1
解决办法
2779
查看次数

为什么我不能在过滤主键后在Cassandra中添加WHERE子句?

编辑*感谢代码格式化的陌生人,我会记住以后!

我遵循基本的planetcassandra.org Cassandra教程,我不明白为什么我不能执行以下查询:

select * 
from users 
where lastname = 'Smith' AND city = 'X';
Run Code Online (Sandbox Code Playgroud)

在这张桌子上:

CREATE TABLE users 
(
    firstname text,
    lastname text,
    age int,
    email text,
    city text,
    PRIMARY KEY (lastname)
);
Run Code Online (Sandbox Code Playgroud)

根据我的理解,分区键(lastname)对数据进行分区.所以带有姓氏史密斯的所有行都应该在节点X上.什么阻止我进一步过滤这些行呢?

谢谢!

cassandra nosql datastax

3
推荐指数
1
解决办法
2685
查看次数