小编ma0*_*a08的帖子

Mongoose将默认设置为空对象

我试图将star_info属性设置为对象类型(混合模式)并将其默认值设置为空对象使用

star_info: { type : Schema.Types.Mixed, default : { }}
Run Code Online (Sandbox Code Playgroud)

在数据库中,star_info保存文档时没有字段.如何mongoose设置默认值?

mongoose

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

何时以及如何在一个Scrapy项目中使用多个蜘蛛

我在用Scrapy,很棒!如此快速地构建一个爬虫.随着网站数量的增加,需要创建新的蜘蛛,但这些网站坐的是同一类型,所有这些蜘蛛使用相同的项目,管道,解析过程

项目目录的内容:

test/
??? scrapy.cfg
??? test
    ??? __init__.py
    ??? items.py
    ??? mybasespider.py
    ??? pipelines.py
    ??? settings.py
    ??? spider1_settings.py
    ??? spider2_settings.py
    ??? spiders
        ??? __init__.py
        ??? spider1.py
        ??? spider2.py
Run Code Online (Sandbox Code Playgroud)

为了减少源代码冗余,mybasespider.py有一个基础蜘蛛MyBaseSpider,95%的源代码都在其中,所有其他蜘蛛都从它继承,如果蜘蛛有一些特殊的东西,覆盖一些 class methods,通常只需要添加几行源代码来创建一个新的蜘蛛

将所有常用设置放入settings.py,一个蜘蛛的特殊设置中[spider name]_settings.py,例如:

特别设置spider1spider1_settings.py:

from settings import *

LOG_FILE = 'spider1.log'
LOG_LEVEL = 'INFO'
JOBDIR = 'spider1-job'
START_URLS = [
    'http://test1.com/',
]
Run Code Online (Sandbox Code Playgroud)

特别设置spider2spider2_settings.py:

from settings import *

LOG_FILE = 'spider2.log' …
Run Code Online (Sandbox Code Playgroud)

python scrapy

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

在AngularJS和Nodejs之间共享代码

什么是共享前端和后端使用之间的代码的最佳方式javascript,特别之间说nodejsangularjs

事情是,我们使用的是相同的enums,并constant valueserror codes在这两个后端和前端.现在我们只是将每个更改复制并粘贴到两个平台上,这不是一个好的解决方案.还有一些可以共享的服务.

我见过像这样的图书馆browserify; 但那不是我想要的.我在寻找类似的解决方案maven dependencyjava.在java,库可以轻松共享使用maven,而我找不到类似的方式来做到这一点javascript.有没有办法隔离这些服务并将它们作为依赖于独立nodejs使用npmangularjs使用bower?或者在前端和后端之间共享相同代码的方法是什么?

javascript node.js npm angularjs bower

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

如何获取经过Google身份验证的用户(oauth2)的Google聊天(环聊)ID?

我正在使用xmpp客户端进行谷歌聊天.我需要Google Talk ID,其类似于用户的"xxxxx@public.talk.google.com".使用oauth2,我可以获取电子邮件ID(gmail)和其他个人资料信息,但我无法弄清楚如何获取Google聊天ID.

我知道我可以使用电子邮件ID代替Google聊天ID用于所有目的.我需要Google聊天ID,因为我在我的用户表中使用电子邮件ID作为标识符.每当用户在Google聊天(环聊)中收到消息时,我都会将ID从"xxxxx@public.talk.google.com"获取.我无法检查我的用户表中是否有发件人记录.如果我可以在人们使用我的客户端进行身份验证时检索Google聊天ID,我可以将其存储在用户表中,并在用户收到消息时使用它来匹配.

发送邮件工作正常,因为我有目标用户的电子邮件ID,我可以用它来发送邮件.

请建议是否可以获取Google聊天ID

google-api google-talk hangout google-oauth

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

Mongodb聚合$ group,限制数组的长度

我想根据字段对所有文档进行分组,但是要限制为每个值分组的文档数.

每条消息都有一个conversation_ID.我需要为每个conversation_ID获取10或更少数量的消息.

我可以根据以下命令进行分组,但除了切片结果之外,无法弄清楚如何限制分组文档的数量 Message.aggregate({'$group':{_id:'$conversation_ID',msgs:{'$push':{msgid:'$_id'}}}})

如何将每个conversation_ID的msgs数组的长度限制为10?

database mongoose mongodb mongodb-query aggregation-framework

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

Mongodb $ in对阵数组对象的字段而不是数组对象

arr=[{field1:<value1>,field2:<value2}.....]
Run Code Online (Sandbox Code Playgroud)

我想使用$in运营商反对field1arr.我知道我可以创建一个虚拟数组并推送虚拟数组中的field1值.但有没有办法使用$in运算符对阵列的特定字段?

arr数组与集合无关.

我想查询所有的文件上的特定字段的值是field1arr- FIELD1应该是运营商的右手边$in

例:

arr=[{name:'foo',location:'NY'},{name:'bar',location:'LA'},{name:'foobar',location:'NZ'}]

db.collection.find({fieldx:<Here I want some method to obtain all documents whose fieldx values are in the location field of arr>})
Run Code Online (Sandbox Code Playgroud)

输出应包含其fieldx值在location字段中存在的文档arr.

查询的输出应该是

[{... 
    fieldx:'NY',
...
},
{...
    fieldx:'LA',
...
},
{...
    fieldx:'NZ',
...
}]
Run Code Online (Sandbox Code Playgroud)

fieldx是我正在查询的集合中的字段.它不是我提供的数组的字段(arr).我想将它与location数组的字段()匹配- arr我正在提供查询.

javascript mongoose mongodb mongodb-query aggregation-framework

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

发布到Azure blob存储时自动生成缩略图或预览图像

我将图片发布到Azure blob存储.当我存储全分辨率图像时,我想要维护图像的缩略图(或预览)的单独集合.是否可以编写脚本(或钩子),当图像上传到blob存储时,图像的缩略图也会自动保存.

请告知是否有办法编写此脚本.

我不想在客户端或服务器端进行大小调整.我使用SAS使客户端能够直接将图像上传到blob存储.我可以将图像发送到我正在运行的移动服务(服务器),其中图像可以调整大小并上传到blob存储.但我不想用这些调用重载服务器.

azure azure-storage azure-storage-blobs

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

Mongodb将_id设置为递减指数

我想使用mongodb的默认值_id但按降序排列.我想存储帖子,并希望在我使用时从头开始获取最新帖子find().我正在使用猫鼬.我试过了

postSchema.index({_id:-1})
Run Code Online (Sandbox Code Playgroud)

但它不起作用

> db.posts.getIndexes()
  [
{
    "v" : 1,
    "key" : {
        "_id" : 1
    },
    "name" : "_id_",
    "ns" : "mean-dev.posts"
}]
Run Code Online (Sandbox Code Playgroud)

我删除了数据库并重新启动了mongod.没有运气.有没有办法使用mongodb的默认索引在同一时间将_id设置为递减索引?我不想用它sort()来逐步对结果进行排序_id.

indexing mongoose mongodb

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

因为所有分片都需要通信,所以不能将localhost用作分片.要么在localhost中使用所有分片和configdbs,要么在实际的IP主机中使用所有分片和配置

mongos> sh.addShard("rs0/delhivery-tech:27017,delhivery-tech:27018,delhivery-tech:27019");

{
    "ok" : 0,
    "errmsg" : "can't use localhost as a shard since all shards need to communicate. either use all shards and configdbs in localhost or all in actual IPs  host: delhivery-tech:27017 isLocalHost:0"
}
Run Code Online (Sandbox Code Playgroud)

我在不同端口的同一主机上运行3个实例.这是一个测试系统.我创建了一个replica set名字rs0.现在我正在补充shard.它显示正在运行的实例localhost.即使我尝试使用ip和loopback ip也..

如果有人帮助我,我会很高兴

mongodb

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

Socket.io 1.1 - 初始连接时如何从客户端发送数据

我想要类似的功能

客户

var socket=io.connect(url,data);
Run Code Online (Sandbox Code Playgroud)

服务器

io.on('connection',function(socket){
   //get data here in the socket object or in other way
})
Run Code Online (Sandbox Code Playgroud)

我知道可以通过连接后发送来获取数据,但我想知道是否有办法在最初连接时发送数据。

node.js socket.io

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

将查询条件传递给生成查询字符串的Node.js/Mongodb中的db.collection.find

我正在尝试构建一个NodeJS/mongodb应用程序,当我读取包含(XYZ > 10)OR 的请求时(XYZ < 15).我想在旅途中生成一个查询字符串.然后在某个Mongodb Collection中搜索.以下将有效:

db.event.find( { 'data.XYZ': {'$lt':15} } ) // This works.
Run Code Online (Sandbox Code Playgroud)

但我想这样做:

var qstr1="{ \'data.XYZ\': {\'$lt\':15} // I would generate this possibly

db.event.find(qstr1)
Run Code Online (Sandbox Code Playgroud)

当我尝试将查询条件作为字符串传递给db.collection.find()它时,返回整个集合.

我正在使用mongoskin该应用程序.然而,即使通过Mongo Shell,这也不起作用.

有没有办法做到这一点?

mongoose mongodb node.js mongoskin

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