2013-08-11 2 views
3

У меня есть следующий код node.js, где он подключается к mongoDB, и я хотел бы вставить сообщение, отображаемое на консоли node.js, в коллекцию под названием «mytable». Проблема, с которой я сталкиваюсь, заключается в том, что она успешно подключается к mongoDB, а также вставляет сообщение, которое отображается на консоли node.js, но вместо того, чтобы указывать как один полный документ, он вставляет в качестве символов. почему это так происходит? Просьба помочьinsterting documents in mongoDB using node.js

var mongo = require("mongodb"); 
var dbhost = "127.0.0.1"; 
var dbport = mongo.Connection.DEFAULT_PORT; 
var db = new mongo.Db("mydb", new mongo.Server(dbhost, dbport, {}), {safe: true}); 
db.open(function(error){ 
     status = ("db connected at" + dbhost + " : " + dbport); 
     console.log(status); 

     db.collection("mytable",function (error,collection){ 

     collection.insert(status, function(error){ 

      if (error){ 
       console.log("Error : ", error.message); 
      } else { 
       console.log("Inserted in to database"); 
       } 

      }); 
     }); 


}); 

мой узел вывода консоли дисплей в

db connected at127.0.0.1 : 27017 
Inserted in to database 

при проверке 'MYTABLE' Монго оболочки с командой

db.mytable.find.forEach(printjson) 

он показывает следующий вывод

{ 

"_id" : objectId("5207741d193770459f068317"), 
"0" : "d", 
"1" : "b", 
"3" : " ", 
"4" : "c", 
"5" : "o", 
"6" : "n", 
"7" : "e", 
"8" : "c", 
"9" : "t", 
"10" : "e", 

"28" : "7", 
"29" : "0", 
"30" : "1", 
"31" : "7" 

} 

Пожалуйста, помогите iw ant только одна запись, т. е. «db, подключенная к 127.0.0.1: 27017», чтобы быть включенной в mytable в качестве единого документа.

ответ

1

Mongo рассматривает string, который вы пытаетесь вставить как BSON document (и, следовательно, объект), и выполняет итерации его свойств, обрабатывая их как поля документа.

Попытка вставки реальный объект со значением вы хотите как собственность:

collection.insert({status: status}, function(error){ 

     if (error){ 
      console.log("Error : ", error.message); 
     } else { 
      console.log("Inserted in to database"); 
      } 

     }); 
    }); 
+0

Как добавить системное время в момент входа в базу данных для. – user2672180

+0

@ user2672180 mongo '_id' содержит временную метку, поэтому с помощью' doc._id.getTimestamp() 'вы получаете это бесплатно - вы не хотите добавлять что-либо в свой документ – soulcheck

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