Sails.js水线查询

Sails.js Waterline Query

本文关键字:查询 js Sails      更新时间:2023-09-26

我想做以下事情,比如说,对于一个简单的群聊应用程序,我们有类似的模型

消息

  • 房间:{"模型":房间}

房间

  • users:{'集合':用户}

我想要以下内容:

给定用户Bob,获取包含Bob的房间中的所有消息。

对此,合适的Waterline查询是什么?

我不确定我知道你对模型结构的意思,但我想你需要这样的东西:

Message.find({ //Message is your Message model
  room:room_id, //or some other identifier
  content:{contains:'Bob'}
}).exec(function(error,result){
  if(error){
  // handle error here
  }else{
    var messages = result;
    //do your stuff.
  }
})

如果我误解了你的意思,请告诉我:)

我建议在Message模型中添加用户(Bob)的id和房间的id作为字段。例如,这可能包含在MessageModule.js:中

userId : 'string',
roomId : 'string',

您要在一个房间中获取Bob的所有消息的查询如下所示:

Messages.find({userId: bobs_user_id, roomId: room_id},
function(err, messages){
    // all bob's messages from room room_id are available in messages
});