小编Sus*_*pta的帖子

mongoengine- referencefield存储什么

在mongoengine中,必须将哪个值设置为ReferenceField.我的意思是我们应该提供要参考的文档的"ObjectId".例如,

class Bar(Document):
    content = StringField()
    foo = ReferenceField('Foo')
Run Code Online (Sandbox Code Playgroud)

类Bar的对象应该具有"foo"属性中设置的值.它应该是'Foo'集合中某些文档的ObjectId吗?我还可以将任何其他唯一字段设置为引用字段中的值,提及它是哪个字段?

orm mongodb mongoengine

7
推荐指数
2
解决办法
5743
查看次数

Node.js和Socket.IO - 房间问题

考虑多聊天应用程序.用户可以加入多个房间(socket.join(room)),用户可以离开房间(socket.leave(room)).

当插座离开房间时,我通知其他房间的参与者.如果套接字当前在3个房间,并且他突然断开网站而没有正确地离开房间,我怎么能通知那些用户已经离开的房间?

如果我使用on socket disconnect事件,用户将不再在任何房间.保持一个单独的用户数组的唯一方法,还是有一些我没想过的聪明方法?

javascript node.js socket.io

7
推荐指数
1
解决办法
5934
查看次数

如何在node.js中完成繁重的处理操作

我有大量的数据处理操作,每个10-12个模拟请求都需要完成。我已经读到,对于更高级别的并发,Node.js是一个很好的平台,它通过具有非阻塞事件循环来实现。

我所知道的是,有像查询数据库的东西,我可以激活一个事件到一个单独的进程(如mongodmysqld),然后有一个回调,这将处理来自该进程的结果。很公平。

但是,如果我想在回调中进行大量计算,该怎么办?在该回调中的代码完全执行之前,它不会阻止其他请求。例如,我想处理高分辨率图像,而我拥有的代码在Javascript本身(no separate用于图像处理的过程)中。

我想到的实现方式就像

get_image_from_db(image_id, callback(imageBitMap) {
    heavy_operation(imageBitMap); // Can take 5 seconds.
});
Run Code Online (Sandbox Code Playgroud)

heavy_operation在那5秒钟内,该节点将停止接收任何请求吗?还是我在思考执行此类任务的错误方法。请指导,我是JS新手。

更新

或者就像我可以处理部分图像并使事件循环返回以接受其他回调并返回到处理该部分图像一样。(类似于对事件进行优先级排序)。

image-processing node.js

6
推荐指数
1
解决办法
5555
查看次数

用于自然语言查询处理的数据库

我只是想知道Google,Yahoo或Bing用于自然语言查询处理的所有数据库.我的意思是他们可以用自然语言接受如此复杂的查询.他们是否以编程方式处理我们的查询并在某种哈希中分解,然后映射到结果.如果问题很愚蠢,请不要介意.我只是个新手.我只想知道所有类型的数据库用于此类目的.

database yahoo

5
推荐指数
1
解决办法
679
查看次数

MongoDB数据库从一个OS迁移到另一个OS

我正在使用Python构建一个Web应用程序,我需要MongoDB.我在Mac OS X上安装了MongoDB.对于我的应用程序,我想要一个Linux VPS.我想知道是否可以将MongoDB集合从Mac迁移到Linux.系统的结束是否会导致问题?还有什么可能?我不是数据库或操作系统方面的专家.如果我们可以迁移,有人可以指向我指导或程序吗?提前致谢.

linux macos mongodb

4
推荐指数
2
解决办法
2329
查看次数

响应时间非常慢(~1000ms).Heroku的.node.js中 mongolab.什么也没做

使用Heroku上的免费帐户和MongoLab上的免费帐户(不使用Heroku插件),每个请求的响应时间大约为1000毫秒(单个用户,它只是我,仍然与所有请求相关,不仅仅是第一个请求很长的空闲时间).我已经从我自己的计算机+同样的免费MongoLab帐户进行了检查,我得到了相同类型的请求~168ms.虽然它仍然很高,但我想问一下Heroku.即使使用免费帐户,如此糟糕的响应时间也是合理的.付款时,响应时间会明显好转吗?

Mongoose,MongoDB(node.js)本机驱动程序.

你有什么想法我要检查什么?

heroku node.js mlab

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

在Django模板中创建年份下拉列表

我想在django模板中创建一年的下拉列表.下拉列表将包含2011年的开始年份,而结束年度应为当年的5年.

例如:如果今天我看到它将显示我2011年,2012年,2013年,2017年的年份.

可以通过从views.py发送列表并在模板中循环或在forms.py中定义来完成.

但我不想在这里使用任何形式.我只需要在模板中显示它.

我怎么能在Django模板中做到这一点.

python django django-templates

2
推荐指数
1
解决办法
8509
查看次数

在索引字段上排序是否有任何优势

我想在某个字段上执行排序操作.是否有利于在该领域制定索引.例如:

SELECT * FROM `users` WHERE `age`=33 ORDER BY `name`
Run Code Online (Sandbox Code Playgroud)

在这个查询中,我知道有一个年龄索引是有帮助的,但如果我维护一个名称索引会更好.索引是否可以获得性能提升.而且ORDER BY,经常需要运行其他查询也是如此.

mysql sql indexing

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

pymongo- upsert无法使用$ set操作执行插入

我有一个空集合,有数千个条目要处理(条目可能有减少,我想要使用更新和插入).python代码(使用pymongo)我写道:

for mydoc in alldocs:
   key = {'myid': mydoc['myid']}
   data = process_doc(mydoc)    # returns simple dictionary
   db.mydocs.update(key, {"$set": data}, upsert = True)
Run Code Online (Sandbox Code Playgroud)

以下代码无法执行任何插入操作.该系列仍然是空的.但是,当我删除$ set并使用简单的数据时,它工作正常.我不能在upsert中使用$ set吗?我想要$ set的原因是BSON的预先存在的字段不会受到影响.有人可以指导.我真的无法弄清楚该怎么做.

可重现代码:

from pymongo import Connection
DB_CONTENT_BASE_KEY = 'contentbase'

def connect_to_db(dbname, hostname = 'localhost', portno = 27017, **kwargs):
    connection = Connection(hostname, portno)
    dbConnection = connection[dbname]
    return dbConnection

class MetawebCustomCollectionBuilder(object):
    # key ought to be a dictionary to filter results from contentbase.
    def __init__(self, inDbConfig, outDbConfig, key = {}, verbose = False):
        self.verbose = verbose
        self.inDbConfig …
Run Code Online (Sandbox Code Playgroud)

python upsert mongodb pymongo

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