gpt4 book ai didi

node.js - Mongodb通过自定义id从 session 集合中查找结果

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:53 24 4
gpt4 key购买 nike

我正在使用 Mongojs 库,它是 mongodb 库的薄包装器。我想在 session 集合中进行一些查找查询,这意味着我使用 mongo 来存储 session (connect-mongo)。

问题在于

db.sessions.find({}, cb); -- returns all the sessions

当我尝试通过从 req.sessionID - 字符串中获取的 id 查找指定 session 时,始终返回 null

db.sessions.findOne({ _id: req.sessionID }, cb); -- yes the seesionId exists, when i execute this query manually it works

还尝试了“mongodb”库直接连接。

var Db = require('mongodb').Db,
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server,
ReplSetServers = require('mongodb').ReplSetServers,
ObjectID = require('mongodb').ObjectID,
Binary = require('mongodb').Binary,
GridStore = require('mongodb').GridStore,
Code = require('mongodb').Code,
BSON = require('mongodb').pure().BSON,
assert = require('assert');

var db = new Db(session.db, new Server(session.host, session.port,
{auto_reconnect: false, poolSize: 4}), {w:0, native_parser: false});

function findBySid(sid, cb) {

db.close();
db.open(function(err, db) {

db.collection('sessions').findOne({ _id: sid }, function(err, session) {

cb(err, session);

});
})

结构本身如下所示,由 connect-mongo 创建

> db.sessions.find({ _id: 'QFtHqaTdtg5kucwvBmY3BZ7m' }).pretty()
{
"_id" : "QFtHqaTdtg5kucwvBmY3BZ7m",
"session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"domain\":\"asad.\",\"path\":\"/\"}}",
"expires" : ISODate("2013-08-12T12:34:49.271Z")
}

最佳答案

实际上Mongo文档另存为

 { "_id" : ObjectId("51ecdea131ce0986e06e91fe"),....}

所以你必须像下面这样找到

db.newcol.find({_id:ObjectId("51ecdea131ce0986e06e91fe")});

以下 shell 输出将进行解释。

 >db.newcol.find({_id:51ecdea131ce0986e06e91fe});
Mon Jul 29 18:25:54.563 JavaScript execution failed: SyntaxError: Unexpected token ILLEGAL
> db.newcol.find({_id:"51ecdea131ce0986e06e91fe"}); //No output empty
> db.newcol.find({_id:ObjectId("51ecdea131ce0986e06e91fe")});
{ "_id" : ObjectId("51ecdea131ce0986e06e91fe"), "name" : "karthick.k", "email" : "karthdfgdf@gmail.com", "phone_no" : "6666666666" }

因此,相应地构造您的查询。

关于node.js - Mongodb通过自定义id从 session 集合中查找结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17924531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com