2014-11-07 2 views
0

in mongodb Как я могу найти несколько документов на одном?mongodb Как найти несколько документов

в моем методе почты у меня есть коллекция appoinments.when получение данных о сообщении я хочу проверить, что они уже находятся в базе данных, используя hour_responce и date_responce, но как я могу это сделать с 2 document.its, работающими нормально только с одним выполнением.

app.post('/collections/:collectionName', function(req, res, next) { 
    console.log(req.body[0]) 
    if(req.params.collectionName == 'appoinments'){ 
     req.collection.findOne({date_responce:req.body[0].date_responce,hour_responce:req.body[0].hour_responce}, function(e, result){ 
      if(result){ 
      console.log(result); console.log(e) 
      res.send(500,{error:"You Already have a Task on this Time Period"}) 
      } 
      else{ 
      req.collection.insert(req.body, {}, function(e, results){ 
      if (e) return next(e) 
      res.send(results) 

      }) 
      } 
     }) 
    } 
    else{ 
    req.collection.insert(req.body, {}, function(e, results){ 
      if (e) return next(e) 
      res.send(results) 
     }) 
    } 

}) 

--- UPDATE ----

{ toArray: [Function], 
    each: [Function], 
    next: [Function], 
    nextObject: [Function], 
    setReadPreference: [Function], 
    batchSize: [Function], 
    count: [Function], 
    stream: [Function], 
    close: [Function], 
    explain: [Function], 
    isClosed: [Function], 
    rewind: [Function], 
    limit: [Function], 
    skip: [Function], 
    hint: [Function], 
    maxTimeMS: [Function], 
    sort: [Function], 
    fields: [Function] } 
+0

Умм. Возможно, метод '.find()'? '.findOne()' должен быть достаточно понятным, не так ли? Вы также можете подумать, чтобы объяснить это немного лучше. –

+0

ok.i имеют два документа 'invoice',' appoinments', но я хочу проверить перед публикацией 'appoinments' он allready в базе данных, используя уникальное значение' hour_responce' и 'date_responce'.but' invoice' коллекция хочет сохранить без проверки Как я могу это сделать и 'req.collection.findOne ({hour_responce: req.body [0] .hour_responce}, function (e, result) {' используя одно условие для проверки этого кода, но как я могу это сделать правильно – kosala

ответ

0

Вы используете findOne метод вашей коллекции.

Вы можете попробовать: найти() метод, а затем итерацию на вашем результирующем, чтобы сделать ваши сравнения

EDIT:

req.collection.find({}).toArray(function(e,result){ 

}); 
+0

ok.then Что такое правильный способ сравнения 2 документов? – kosala

+1

для (r в результате) {if (result [r] .attr === data) {console.log ('okay');} – mfrachet

+0

и этот код не работа с методом find.i попытался обновить вопрос с помощью журнала ошибок – kosala

Смежные вопросы