簡體   English   中英

MongoDB:在一個文檔中獲取所有集合

[英]MongoDB: Get all collections in one document

我在使用Javascript和mongoDB時遇到了麻煩。 我通過以下方式連接:

var db = mongo.db(config.connectionString, { native_parser: true });

並綁定我的訪問者集合db.bind('visitors'); 因此,在嘗試使用該行將所有文檔放到那里之后:

db.visitors.find(function (err, visitors) {
   if (err) deferred.reject(err.name + ': ' + err.message);
   deferred.resolve(visitors);
});

所以一切對我來說都很好。 但是我每次都會收到此錯誤:

angular.js:12011 GET http:// localhost:3000 / api / visitors / getAll 400(錯誤請求)

我用我的api想到了它,於是我嘗試了...findOne({_id:1},..並且行得通。那我錯過了什么嗎?

是的,這是錯誤的。 它應該是:

db.visitors.find({}, function (err, visitors) {
   if (err) deferred.reject(err.name + ': ' + err.message);
   deferred.resolve(visitors);
});

參數為:

collection.find(query[[[, fields], options], callback]);

它首先需要查詢,然后是回調,而您首先要提供回調。

使用findOne()測試的原因在於,您是通過{_ id: 1}對象傳遞查詢的。

Node.js中有關MongoDB查詢的文檔在這里

編輯:

使用.find()並通過將其轉換為數組以異步方式處理游標對象的示例:

db.visitors.find({}).toArray(function (err, docs) {
    if (err) throw err;
    console.log(docs);
});

認為您錯過了find()的參數部分。 即使您不想查找特定的內容,也必須在參數部分傳遞一個空對象。 因此看起來應該像find({}, function(){...});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM