使用Waterline ORM在MongoDB中取消设置密钥的方法是什么?
请考虑以下文档:
{
    name : 'brian',
    age : 29
}
获得用户是没有问题的:
var users = Users.findOne({ name : 'brian' }).exec(cb);
我希望年龄能够消失.我已尝试以下方法来完成此任务:
user.age = undefined;
user.save();
user.age = null;
user.save();
delete user.age;
user.save();
似乎没有工作.#1将其设置为null,#2将其设置为null,#3保留原始值.
谢谢.
这是我的 Users.model:
module.exports = {
    attributes: {
        name: {
            type: 'string',
            required: true,
            minLength: 3,
            maxLength: 30
        },
        username: {
            type: 'string',
            required: true,
        },
        toJSON: function() {
          var obj = this.toObject();
          obj.link = sails.config.globals.baseUrl + sails.config.routes.user + obj.id;
          return obj;
        }
    }
  };
我想要的是使用一些在模型中“预”计算的属性。我的解决方案是在 toJSON() 函数中注入 attr,但在视图中我必须使用:
<%= users.toJSON().link %> 
有没有办法为用户创建一个属性或一些方法?喜欢:
module.exports = {
       attributes: {
        name: {
            type: 'string',
            required: true,
            minLength: 3,
            maxLength: 30
        },
        myPersonalAttribute: function(){
           return "Value"   
        }
}
我有餐厅记录的集合.这个集合中的一些餐馆属于某个团体(连锁型餐厅,例如KfC等),而其他没有任何团体(个别餐厅,不属于任何连锁店).
例如:
餐厅系列
{_id:"1",title:"rest1",address:"somethingx",chain_id:"123"},
{_id:"2",title:"rest2",address:"somethingx",chain_id:"123"},
{_id:"3",title:"rest3",address:"somethingy",chain_id:"0"},
{_id:"4",title:"rest4",address:"somethingx",chain_id:"0"} 
连锁收藏:
{_id:"123",chain_name:"VSWEETS",address_deatils:[
                                          {restID:"",address:"somethingx"},
                                          {restID:"",address:"somethingx"}
                                         ]
}
{_id:"456",chain_name:"KFC",address_deatils:[]}
我需要用类似的chain_id获取不同的餐厅,即如果它属于某个链条,则只有单个餐厅应该来(chain_id!= 0)
我正计划在交付的最后阶段建立一个在线音乐网站.MP3音频文件可通过浏览器检查器(音频文件的绝对路径)公开下载.如何保护它们不被下载,但仍然可以在浏览器中流式传输?
是否有任何高级加密策略可以阻止它们被下载?
使用的技术:Sails.JS上的Angular.JS,Node.JS.
请向我推荐一些解决方案.提前致谢.
希望仅查询日期人遇到过这个?
示例代码:
    ////MODEL
    module.exports = {
      attributes: {
        date: {
            type: 'date',
            required: true
        }    
      }
    };
    ////CONTROLLER
    var today = moment().toISOString();
    var queryObj = { date: today };
    var newDay = { date: today };
    Day.findOrCreate(queryObj, newDay).exec(function(err, day) {            
        console.log(day)
    });
显然,这会在每次刷新时创建一条新记录,因为iso字符串将随着每秒的变化而变化.
谢谢您的帮助!
我在一个项目上使用SailsJS,我需要使用native()某些查询.我遇到的问题是我找不到从mongo集合find结果中实例化Waterline Model Object的正确方法.我一直在搜索有关此内容的信息,我发现的唯一内容如下:
var instance = new Model._model(mongo_result_item);
这应该可以正常工作,但是当我这样做时instance.save(function(err, ins){});,由于"_id"字段,模型会抛出错误,应该是"id".
我已经看了sails-mongo代码,我发现对于"find"方法,他们这样做:
// Run Normal Query on collection
collection.find(where, query.select, queryOptions).toArray(function(err, docs) {
    if(err) return cb(err);
    cb(null, utils.normalizeResults(docs, self.schema));
});
所以normalizeResults用"_id"属性和其他东西来做神奇的事.
我现在这样做的方式是要求sails-mongo utils.js文件可以访问此方法.
完整样本:
var mongoUtils = require('sails-mongo/lib/utils.js');
SampleModel.native(function(nativeErr, collection){
    collection.find({ 'field' : value }).toArray(function(collectionErr, results){
        if (!results || results.length == 0) return res.restfullInvalidFieldValue({ msg : 'INVALID_VALUE' });
        var norm_results = mongoUtils.normalizeResults(results);
        var instance = new SampleModel._model(norm_results[0]);
    });
});
有没有更好/正确的方法来实现这一目标?
我需要进行本机搜索,因为我发现使用字符串的Waterline find()方法存在问题,其中搜索应区分大小写.模型上的每个字符串字段都用作以下形式的正则表达式匹配:/ ^ {string} $/i …
我在Windows 10上npm安装Sails.js之后,无法识别“ sails”命令。
有人可以提示我在PATH变量中使用哪些值吗?据我了解,它是运行sails.js文件的Node.exe。但是,如果我尝试在cmd中调整“ node sails.js”命令,它会识别出该命令,但找不到某些依赖项。
在我的Windows 7机器上,所有东西都已安装并运行正常
我想在layout.ejs中添加一个route.js文件.
<!DOCTYPE html>
<html ng-app="scratchpad">
  <head>
    <title>Scratchpad</title>
    <!-- Viewport mobile tag for sensible mobile support -->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <!--
        Stylesheets and Preprocessors
        ==============================
        You can always bring in CSS files manually with `<link>` tags, or asynchronously
        using a solution like AMD (RequireJS).  Or, if you like, you can take advantage
        of Sails' conventional asset pipeline (boilerplate Gruntfile).
        By default, stylesheets from your `assets/styles` folder are included
        here automatically (between STYLES and STYLES END). Both CSS (.css) and …我运行我的应用程序时出错.
应用程序错误.应用程序中发生错误,无法提供您的页面.请稍后重试.
如果您是应用程序所有者,请检查日志以获取详细信息.
Heroku日志:
   May 05 08:17:00 game  app/web.1:  > node app.js 
May 05 08:17:04 game  app/web.1:  error: Error: Failed to connect to MongoDB.  Are you sure your configured Mongo instance is running? 
May 05 08:17:04 game  app/web.1:   Error details: 
May 05 08:17:04 game  app/web.1:  { [MongoError: connect ECONNREFUSED] name: 'MongoError', message: 'connect ECONNREFUSED' } 
May 05 08:17:04 game  app/web.1:      at _createError (/app/node_modules/sails-mongo/lib/adapter.js:101:23) 
May 05 08:17:04 game  app/web.1:      at /app/node_modules/sails-mongo/lib/adapter.js:104:13 
May 05 08:17:04 game  app/web.1:      at /app/node_modules/sails-mongo/lib/connection.js:25:20 
May 05 08:17:04 …我只是在玩sailsjs的概念然后我才知道如果我们使用mongodb作为我们的数据库,我们就不能在风帆中使用自动增量.即使对于非主键属性,我也无法使用自动增量.对于不是主键的属性,是否有任何特殊方法可以使用自动增量操作?提前致谢
sails-mongo ×10
sails.js ×10
waterline ×4
javascript ×2
node.js ×2
angularjs ×1
audio-player ×1
heroku ×1
mlab ×1
mongodb ×1
nosql ×1
npm ×1
sails.io.js ×1
selenium ×1