Sails @ beta,mongodb,windows 7 32bit,
我试图通过应用程序创建一个新用户后收到上述错误.当我从config/policies.js删除策略isPawn一切正常.我不明白这个政策有什么问题.在我看来,我错误地访问mongodb id属性.
isPawn.js https://github.com/mrcn/C_Express/blob/master/api/policies/isPawn.js
module.exports = function(req, res, next) {
var sessionUserMatchesId = req.session.User.id === req.param('id');
var isAdmin = req.session.User.admin;
// The requested id does not match the user's id,
// and this is not an admin
if (!(sessionUserMatchesId || isAdmin)) {
var noRightsError =
[{
name: 'noRights',
message: 'You must be an admin.'
}];
req.session.flash = {
err: noRightsError
};
res.redirect('/session/new');
return;
}
next();
};
Run Code Online (Sandbox Code Playgroud)
用户模型 - user.js https://github.com/mrcn/C_Express/blob/master/api/models/User.js
module.exports = {
schema: true, …Run Code Online (Sandbox Code Playgroud) 为了减轻MongoDB服务器的负载,我想从Redis中的Waterline缓存一些对象.为此,我必须将对象序列化为JSON.
我的问题是,我如何构建我的JSON回到Waterline模型的实例,具有数据类型处理,成员函数等,使这对消费代码透明?
每当我运行本机MongoDB查询时,我也想要这个,给我带有本地ObjectID的对象,不匹配的日期类型等.
User.findOne(id, function (err, user) {
// to string and back again, could be stored in cache in the meantime
var object = JSON.parse(JSON.stringify(user));
var user = new User(object); //doesn't work
var user = User.toObject(object); // doesn't work
}
Run Code Online (Sandbox Code Playgroud) 我刚刚创建了一个MongoDB Atlas帐户.
但我无法通过我的应用程序进行连接.
但似乎sails-mongo只是不使用该数据库,这需要一个非常新的mongo版本
有人使用MDB Atlas && sailsjs吗?(我想重构我的应用程序,但它开始是huuge,似乎不可能使用"mongodb"适配器)
版本: - 节点:6.3.1 - npm:3.10.6 - mongo(shell):3.4.2 - sails-mongo npm模块:sails-mongo@0.12.2
使用Sails.js版本0.10.x,假设我有一个模型Dog,填充如下(yaml为方便起见,以格式写出,但在我的情况下,它实际上是在mongo数据库中.)
dogs:
- breed: "wolf"
name: "Fido"
- breed: "wolf"
name: "Roger"
- breed: "dingo"
name: "Nipper"
- breed: "dingo"
name: "Ernie"
- breed: "corgi"
name: "Bernadi"
- breed: "corgi"
name: "Queenie"
- breed: "poodle"
name: "Christopher"
- breed: "poodle"
name: "Tony"
etc
Run Code Online (Sandbox Code Playgroud)
所以现在我想创建一个可用品种的列表.
Dog.find().exec(err, dogs) {
breeds = [];
dogs.each(function(dog)) {
if (breeds.indexOf(dog.breed) === -1) breeds.push(dog.breed);
}
...
}
Run Code Online (Sandbox Code Playgroud)
是否有更简单的方法来执行此操作,数据库上的命中次数更少?就像是
Dog.find().distinct('breed').exec(function(err, breeds){
...
});
Run Code Online (Sandbox Code Playgroud)
我发现这个封闭的水线问题似乎表明我可以使用一种.distinct方法,但我尝试了它并且没有骰子. …
我想删除集合具有的所有成员,但是我不想将每个成员都传递ID给.member()方法。
水线文件说明了删除特定成员的方法,例如:
await User.removeFromCollection(3, 'pets')
.members([99,98]);
Run Code Online (Sandbox Code Playgroud)
我想做某事:
await User.removeFromCollection(3, 'pets')
.members(['*']);
Run Code Online (Sandbox Code Playgroud) 我正在使用带有sails-mongo适配器的mongodb处理sails js,我的问题是我无法使用sails-mongo获取两个日期之间的结果。
那么有没有检索这些数据的解决方案,实际上我想获得每天的条目总数(过去 15 天)。
因此,如果您知道任何事情或解决此问题的任何替代方法,请分享。
--谢谢-ND
我有这样的收藏条目
[
{
形状:[{id:1,status:true},{id:2,status:false}]
},
{
形状:[{id:1,status:true}]
}
]
我想获取与 array 完全匹配的数据,意味着包含所有元素。的数组。
前任。其中 shape.id = [1,2] / [ {id: [1,2] } ] (任何一个都喜欢)
那么它应该只返回
[
{
形状:[{id:1,status:true},{id:2,status:false}]
}
]
所以如果有任何本地 mongodb 查询,请帮助我。
谢谢
--ND
我使用Sails.js和mongoDb(sails-mongo)编写了一个应用程序.
首先,我决定将所有内容写入单个文档...并且数据库在5GB数据上放慢速度."慢速"意味着在30-50秒内执行基本查找查询.
比我在多个集合中重写所有并添加索引..我的模型示例:
Markets.js
module.exports = {
attributes: {
name: {
type: 'string',
index: true
},
pairs: {
collection: 'Exchanges',
via: 'source',
}
}
};
Run Code Online (Sandbox Code Playgroud)
和Exchanges.js
module.exports = {
attributes: {
s1: {
type: "string"
},
source:{
model: "Maklers",
index: true
},
s2: {
type: "string"
},
p: {
type: 'float'
},
v1: {
type: 'float'
},
v2: {
type: 'float'
},
vb: {
type: 'float'
}
}
};
Run Code Online (Sandbox Code Playgroud)
和慢查询的例子
Markets.findOne({
name: info,
sort: 'createdAt DESC',
limit: 1,
createdAt: { …Run Code Online (Sandbox Code Playgroud) sails-mongo ×8
sails.js ×7
mongodb ×5
node.js ×3
waterline ×3
javascript ×2
atlas ×1
collections ×1
distinct ×1
mongoose ×1