【问题标题】:find nth element of array in mongo collection? meteor在mongo集合中找到数组的第n个元素?流星
【发布时间】:2015-09-22 03:08:04
【问题描述】:

我有一个名为 ChatRooms 的集合,其中包含一组聊天 ID,它们只是聊天室中的用户 ID。数组中一次只有两个 id。 我想在这个数组中找到第一个元素并将其设置为变量“messager”,以便我可以查看它是否属于当前登录的人。如果不是,刚刚发送的消息将被添加到不同的集合中称为通知,以便可以通知其他用户收到消息。我在查询中不断收到语法错误,我不知道为什么。这是我的代码块:

createMessageNotification = function(message) {
  var messager = ChatRooms.find( {}, { chatIds: { $slice: 0,1 } } );
  //console.log(messager);

  if(messager !== Meteor.userId()){
    Notifications.insert({

      message: message.value
    });
  }
}

【问题讨论】:

    标签: arrays mongodb meteor


    【解决方案1】:

    $slice 需要标量或数组参数。 docs 此外,您应该使用返回对象的 findOne 而不是返回游标的 find

    试试:

    var messager = ChatRooms.findOne( {}, { chatIds: { $slice: 1 } } ).chatIds;
    

    var messager = ChatRooms.findOne({}).chatIds[0];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 2018-09-01
      相关资源
      最近更新 更多